惊了 Java 转岗写 PHP 的都喜欢把代码写的这么复杂么

2018 年 5 月 19 日
 KomeijiSatori

一个简单的从数据库里获取指定 APPID 下所有广告的接口,内部封装了一大堆神奇的东西

从数据库里拉取东西先要调用 getAdvertService 获取到获取广告的 Service,然后这个 Service 又要获取 AdvertLogic,然后 AdvertLogic 里又调用 AdvertPosLogic,然后 AdvertPosLogic 里才调用 AdvertPosModel 来连接数据库查询。。

然后我精简成几行代码还被吐槽了。。。

https://i.imgur.com/xi6Z0Fn.jpg

12833 次点击
所在节点    程序员
59 条回复
instein
2018 年 5 月 19 日
盖高楼和盖小屋的方法, 本来就有所不同
bromineMai
2018 年 5 月 19 日
@newtype0092
不用*也有这种问题,有个常见场景:给某个方法传一个记录对应的数组 /对象参数,以后加个新业务字段,不用*所有调用的地方你都要改。
接口字段泄露的问题相对来说其实很好处理,平时输出前 array_walk unset 下就好
Actrace
2018 年 5 月 19 日
@ranwu 其实公司根本不关心这些问题。
Marfal
2018 年 5 月 19 日
我想吐槽一下字体...
newtype0092
2018 年 5 月 19 日
@bromineMai 那到也是,不过我还是觉得,在万一疏忽的情况下,少返回一点数据顶多前端显示 bug,算是体验问题,多返回数据可能会导致安全问题,更严重些吧。
而且清清楚楚写明白到底返回了那些字段比一个*看着清晰,别人或者一段时间后的自己来看更方便吧。
agoodob
2018 年 5 月 19 日
@learnshare 不不不,是 2016 年左右的项目。media query 100%存在
agoodob
2018 年 5 月 19 日
@learnshare 前面的留言里忘记写项目时间了哈哈,不好意思
learnshare
2018 年 5 月 19 日
@agoodob 或许只是技术没有更新,这种问题也比较普遍
16 年还在用 jQuery 的项目也算是技术该更新了
xuwenmang
2018 年 5 月 19 日
PHP 以前用类来封装的时候都被吐槽 PHP 就该有 PHP 的样子~
Hieast
2018 年 5 月 19 日
过度设计变为简单设计容易,没有设计想做好设计难
zachlhb
2018 年 5 月 19 日
分层书写,前期可能绝对很复杂,啰嗦,但是当项目越写越大的时候就知道这样写的好处了
freefcw
2018 年 5 月 19 日
分几层的调用倒是没错,不过它这个也太多了点,一般而言有个三层差不多覆盖 80 的业务了,还是看业务需求实现
param
2018 年 5 月 19 日
Java 转 Python 的好像也这样
lsls931011
2018 年 5 月 19 日
我对你们无语, 这不是正常的么。 Web 后端是要分业务层、逻辑层、模型层、服务层互相调用, 为什么要这样写是为了方便以后的维护。 你说的精简代码就是 PHP 就是直接调用 PDO 从数据库获取数据是吧,可是你想想现在产品需求就是简单从数据库获取 APPID 下所有广告,那么你能保证以后产品不会针对这个接口提出更多需求, 到时候你说的精简反而给自己留下坑。 还有查询数据库尽量减少使用 * , 因为这相比较查询特定字段要慢得多
lihongjie0209
2018 年 5 月 19 日
分层是没问题的, 但是分太多有点过度设计了
carakan
2018 年 5 月 19 日
这个个锅..java 不背..只能说人有点思维定势...分层不假..接口过于细化..有点问题了(不按当前实际情况
linuxchild
2018 年 5 月 19 日
hhha 让我想起来身边有 Java Coder 写的 Python 命名全部驼峰
watzds
2018 年 5 月 19 日
Java 很多人每个 DAO 对应一个 service,这种我是不喜欢的,方法还一样
AccIdent
2018 年 5 月 19 日
楼上说的挺多了,但是有一点没有提到,如果不做封装不做分层,测试代码还写的下去吗?楼主可以从这个角度考虑下
simo
2018 年 5 月 19 日
不谈应用背景,没有意义。
简单的按照业务量来分大、中、小工程,即使同一个框架,分层设计也会不同

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/456148

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX