分层架构,经典却很难做好 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
lotusp
V2EX    程序员

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

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

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

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

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

    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
    静态检查确保单项依赖
        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
    跟技术关系不大,因为都是业务驱动
    goofish
        11
    goofish  
       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     Solana     2282 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 10:24 PVG 18:24 LAX 02:24 JFK 05:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86