V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lotusp
V2EX  ›  程序员

分层架构,经典却很难做好

  •  1
     
  •   lotusp · 2022-04-19 08:52:27 +08:00 · 5106 次点击
    这是一个创建于 953 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前整理过一篇关于分层架构的文章:分层架构:一个经典却得不到优的难题

    分层架构最经典也最容易上手,但做好也是最难的,实际开发过程中,要么某一层过大过厚,要么层与层之间互相调用。

    你的系统代码都是采用什么架构?有什么比较好的实践?欢迎讨论~

    15 条回复    2022-08-29 17:49:13 +08:00
    yule111222
        1
    yule111222  
       2022-04-19 08:58:16 +08:00
    DDD 棱形对称架构
    分层 或者 每个层里面不同类型的对象需要很强的约束,只承担自己应该承担的职责绝不多做半点事,这需要团队有很强力的 code review 机制才能做到
    K1W1
        2
    K1W1  
       2022-04-19 08:59:55 +08:00 via Android
    "层与层相互调用"说明依赖没设置好,要自下而上,单向依赖呀
    wanguorui123
        3
    wanguorui123  
       2022-04-19 09:13:48 +08:00
    主要是实体、业务层、数据层的抽象不够彻底,导致最终业务写成一坨又一坨,无法复用各个层之间的关系,彻底分层需要很强的心智和自律
    3dwelcome
        4
    3dwelcome  
       2022-04-19 10:05:15 +08:00   ❤️ 1
    第一,代码会随着时间的推移,变得越来越乱。这和架构选择没有必然关系,和新需求的不断加入,有直接关系。我称之为代码熵增。

    第二,减少熵增最佳实践,就是定期重构。
    golangLover
        5
    golangLover  
       2022-04-19 12:30:48 +08:00 via Android
    @wanguorui123 隔壁的网友会告诉你能跑就行了。那以后肯定就是踩雷。种因得果而已
    gfreezy
        6
    gfreezy  
       2022-04-19 13:30:21 +08:00
    静态检查确保单项依赖
    lessMonologue
        7
    lessMonologue  
       2022-04-19 15:05:03 +08:00
    目前对这个问题是有心无力的感觉。希望从各位道友的回答里管中窥豹
    timethinker
        8
    timethinker  
       2022-04-19 15:10:10 +08:00   ❤️ 1
    你有没有想过,有时候可能并不是单纯的技术原因所导致的,而是一次又一次变形的需求?层层加码,而又没有时间回过头来梳理和重构,必定会导致这些问题。
    xuanbg
        9
    xuanbg  
       2022-04-19 15:44:43 +08:00
    能垂直切的都切成微服务了。。。切小后就没必要分层了。
    RainCats
        10
    RainCats  
       2022-04-20 11:37:52 +08:00
    跟技术关系不大,因为都是业务驱动
    xhldtc
        11
    xhldtc  
       2022-08-29 13:47:16 +08:00
    怎么回事,为什么 132 天前回复的帖子置顶了?
    nothingistrue
        12
    nothingistrue  
       2022-08-29 13:50:28 +08:00
    卧槽,挖坟
    wolfie
        13
    wolfie  
       2022-08-29 13:58:26 +08:00
    @xhldtc
    OP 可以自己用硬币置顶,你看墨刀招聘 /t/849162 ,一段时间就置顶一次。
    micean
        14
    micean  
       2022-08-29 14:46:14 +08:00
    对于单一团队来说,业务代码写成一坨就是最佳实践……
    jones2000
        15
    jones2000  
       2022-08-29 17:49:13 +08:00
    框架是死的, 业务需求是活的。 活人这么能被框架限死呢,根据实际情况调整框架,不要照本宣科。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3017 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:53 · PVG 22:53 · LAX 06:53 · JFK 09:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.