写接口的时候那个 service 层可以不要吗?

282 天前
 jack4536251

为什么非要在 service 里面写业务再去 controller 里面调用,我直接写 cntroller 里面不好吗?还不用跳来跳去去看实现。

1148 次点击
所在节点    问与答
17 条回复
cheng6563
282 天前
因为代码复用
renfei
282 天前
看来你还没挨过打啊,改个逻辑,一搜,复制粘贴的满世界全都是,根本不敢动
god7d
282 天前
没问题,等你需要的时候再重构即可
sujin190
282 天前
调用链最短化和代码复用最大化考虑实际情况取最优就可以,不要太纠结,有时一开始就想各种复用就是瞎搞,然后一层调一层各种子包子项目的,其实也是乱的一塌糊涂,最后一看毛复用的情况都没出现,纯属一开始瞎想

如果是微服务体系下,单项目应该尽量单一职责,服务规划合理的情况下,项目内本来就应该缩短调用链,再一层调一层其实很多余才是更坑死
me1onsoda
282 天前
可以,尊重他人命运
jack4536251
282 天前
@cheng6563 基本没啥服用的地方吧,能复用的基本都是公共方法,我公共方法都放在 utils 里面
jeffw
282 天前
可以,完全没问题,我就是这样写,如果有多个地方用到同样的逻辑,就再单独抽离出来也不迟。没必要一开始就把所有逻辑放到 service 里,跳来跳去的麻烦。代码是死的,人是活的,不要太教条。
silencil
282 天前
我也确实没遇到那么多复用的,少部分代码能进行复用,平常就是为了多一层而多
dyxLike
282 天前
如果是团队代码就按规范来, 自己的项目就随意了, 以后真遇到痛点再改也不迟
nekolr
282 天前
如果一开始可以不是很费力的做好,为什么要留到以后回来重构呢?
justplaymore
282 天前
你可以选择不分层,但你最好要知道什么时候需要分层,分层是为了解决什么问题,要有重构思路。
nodododo
282 天前
如果你的接口同时被 pc 安卓 ios 小程序和后台调用,肯定不能公用控制层的,必须要拆开也方便排查问题
xinshoushanglu
282 天前
看具体情况,如果你这个接口一开始就确定了 不会改,一次性的东西,写在哪里都行。但要是其他地方有饮用,将来还要扩展 修改 啥的,这个一次性的 controller 就必须改了
jack4536251
282 天前
@xinshoushanglu 是的,先写 controller ,后面需要共用的再抽出来
SunnyIng
282 天前
直接在 controller 层写,会显得很乱,后期维护也不好维护,代码也无法复用,我看到这种代码我就骂一次。。。。
cchrisweiii
282 天前
建议转行 C 语言,一个.C 写全部,芜湖,起飞!
paceewang1
281 天前
你是没见过一个接口 1000 行的代码,当然了,这只是后面阅读还有修改的人痛苦

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

https://www.v2ex.com/t/961582

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

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

© 2021 V2EX