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

2023-08-01 16:50:03 +08:00
 jack4536251

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

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

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

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

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

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

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

© 2021 V2EX