同一个公司,两套分包方式:一套严格的 DDD 四层(application/domain),一套传统的 controller/service/mapper。

我扒了这两套代码的真实数据,发现一个极其扎心的事实:
用了 DDD 四层的那个项目,domain 层最大的类依然高达 5885 行。不仅如此,应用层有 5 处直接越过 domain 去 import mapper,事务注解更是散落在应用层、领域层、策略层和接口四个位置。

目录立得再漂亮,也拦不住越层调用和写成一坨的代码。分包是目录问题,分层是依赖方向问题,两码事。

昨晚复盘写了一篇长文,顺手总结了 3 条可以直接塞进 CI 的检查命令(ArchUnit + grep),把那些“名存实亡”的分层直接卡在编译期。

文章在这,同行们自己去对号入座吧👇

顺嘴问一句:你们团队的分包约定,现在靠什么守?是全靠 Code Review 时的自觉,还是真有工具卡着?
展开
1