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

2022-04-19 08:52:27 +08:00
 lotusp

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

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

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

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

第二,减少熵增最佳实践,就是定期重构。
golangLover
2022-04-19 12:30:48 +08:00
@wanguorui123 隔壁的网友会告诉你能跑就行了。那以后肯定就是踩雷。种因得果而已
gfreezy
2022-04-19 13:30:21 +08:00
静态检查确保单项依赖
lessMonologue
2022-04-19 15:05:03 +08:00
目前对这个问题是有心无力的感觉。希望从各位道友的回答里管中窥豹
timethinker
2022-04-19 15:10:10 +08:00
你有没有想过,有时候可能并不是单纯的技术原因所导致的,而是一次又一次变形的需求?层层加码,而又没有时间回过头来梳理和重构,必定会导致这些问题。
xuanbg
2022-04-19 15:44:43 +08:00
能垂直切的都切成微服务了。。。切小后就没必要分层了。
RainCats
2022-04-20 11:37:52 +08:00
跟技术关系不大,因为都是业务驱动
xhldtc
2022-08-29 13:47:16 +08:00
怎么回事,为什么 132 天前回复的帖子置顶了?
nothingistrue
2022-08-29 13:50:28 +08:00
卧槽,挖坟
wolfie
2022-08-29 13:58:26 +08:00
@xhldtc
OP 可以自己用硬币置顶,你看墨刀招聘 /t/849162 ,一段时间就置顶一次。
micean
2022-08-29 14:46:14 +08:00
对于单一团队来说,业务代码写成一坨就是最佳实践……
jones2000
2022-08-29 17:49:13 +08:00
框架是死的, 业务需求是活的。 活人这么能被框架限死呢,根据实际情况调整框架,不要照本宣科。

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

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

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

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

© 2021 V2EX