V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jack4536251
V2EX  ›  问与答

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

  •  1
     
  •   jack4536251 · 270 天前 · 1129 次点击
    这是一个创建于 270 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    17 条回复    2023-08-02 14:33:47 +08:00
    cheng6563
        1
    cheng6563  
       270 天前
    因为代码复用
    renfei
        2
    renfei  
       270 天前
    看来你还没挨过打啊,改个逻辑,一搜,复制粘贴的满世界全都是,根本不敢动
    god7d
        3
    god7d  
       270 天前 via iPhone
    没问题,等你需要的时候再重构即可
    sujin190
        4
    sujin190  
       270 天前
    调用链最短化和代码复用最大化考虑实际情况取最优就可以,不要太纠结,有时一开始就想各种复用就是瞎搞,然后一层调一层各种子包子项目的,其实也是乱的一塌糊涂,最后一看毛复用的情况都没出现,纯属一开始瞎想

    如果是微服务体系下,单项目应该尽量单一职责,服务规划合理的情况下,项目内本来就应该缩短调用链,再一层调一层其实很多余才是更坑死
    me1onsoda
        5
    me1onsoda  
       270 天前
    可以,尊重他人命运
    jack4536251
        6
    jack4536251  
    OP
       270 天前 via Android
    @cheng6563 基本没啥服用的地方吧,能复用的基本都是公共方法,我公共方法都放在 utils 里面
    jeffw
        7
    jeffw  
       270 天前
    可以,完全没问题,我就是这样写,如果有多个地方用到同样的逻辑,就再单独抽离出来也不迟。没必要一开始就把所有逻辑放到 service 里,跳来跳去的麻烦。代码是死的,人是活的,不要太教条。
    silencil
        8
    silencil  
       270 天前
    我也确实没遇到那么多复用的,少部分代码能进行复用,平常就是为了多一层而多
    dyxLike
        9
    dyxLike  
       270 天前
    如果是团队代码就按规范来, 自己的项目就随意了, 以后真遇到痛点再改也不迟
    nekolr
        10
    nekolr  
       270 天前
    如果一开始可以不是很费力的做好,为什么要留到以后回来重构呢?
    justplaymore
        11
    justplaymore  
       270 天前
    你可以选择不分层,但你最好要知道什么时候需要分层,分层是为了解决什么问题,要有重构思路。
    nodododo
        12
    nodododo  
       270 天前
    如果你的接口同时被 pc 安卓 ios 小程序和后台调用,肯定不能公用控制层的,必须要拆开也方便排查问题
    xinshoushanglu
        13
    xinshoushanglu  
       270 天前
    看具体情况,如果你这个接口一开始就确定了 不会改,一次性的东西,写在哪里都行。但要是其他地方有饮用,将来还要扩展 修改 啥的,这个一次性的 controller 就必须改了
    jack4536251
        14
    jack4536251  
    OP
       270 天前 via Android
    @xinshoushanglu 是的,先写 controller ,后面需要共用的再抽出来
    SunnyIng
        15
    SunnyIng  
       269 天前
    直接在 controller 层写,会显得很乱,后期维护也不好维护,代码也无法复用,我看到这种代码我就骂一次。。。。
    cchrisweiii
        16
    cchrisweiii  
       269 天前
    建议转行 C 语言,一个.C 写全部,芜湖,起飞!
    paceewang1
        17
    paceewang1  
       269 天前
    你是没见过一个接口 1000 行的代码,当然了,这只是后面阅读还有修改的人痛苦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1711 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 1007ms · UTC 16:31 · PVG 00:31 · LAX 09:31 · JFK 12:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.