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

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

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

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

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

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

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

    第二,减少熵增最佳实践,就是定期重构。
    golangLover
        5
    golangLover  
       112 天前 via Android
    @wanguorui123 隔壁的网友会告诉你能跑就行了。那以后肯定就是踩雷。种因得果而已
    gfreezy
        6
    gfreezy  
       112 天前
    静态检查确保单项依赖
    lessMonologue
        7
    lessMonologue  
       112 天前
    目前对这个问题是有心无力的感觉。希望从各位道友的回答里管中窥豹
    timethinker
        8
    timethinker  
       112 天前
    你有没有想过,有时候可能并不是单纯的技术原因所导致的,而是一次又一次变形的需求?层层加码,而又没有时间回过头来梳理和重构,必定会导致这些问题。
    xuanbg
        9
    xuanbg  
       111 天前
    能垂直切的都切成微服务了。。。切小后就没必要分层了。
    RainCats
        10
    RainCats  
       111 天前
    跟技术关系不大,因为都是业务驱动
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4188 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:30 · PVG 15:30 · LAX 00:30 · JFK 03:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.