DDD界限上下文与模块化实现的矛盾
💡
原文中文,约800字,阅读约需2分钟。
📝
内容提要
在构建Web应用时,使用Java的原生模块或Maven模块都无法实现有界上下文。Spring和Spring Boot不适合构建模块化的应用程序。更好的方法是将应用程序视为库,创建与技术风险相关的模块。Spring对反射的依赖程度很高,也存在一致性方面的问题。
🎯
关键要点
-
在构建Web应用时,Java的原生模块和Maven模块无法实现有界上下文。
-
Maven模块鼓励错误的共享,需要为每个业务上下文定义不同的模型。
-
Spring和Spring Boot不适合构建模块化的应用程序。
-
Spring Modulith的实际效果受到怀疑。
-
更好的方法是将应用程序视为库,创建与技术风险相关的模块。
-
Spring并非真正为模块信息而设计,大多数开发人员不愿意进行模块所需的复杂操作。
-
Spring对反射的依赖程度高,导致需要公开不必要的内容。
-
存在一致性问题,部署管理和Java模块可能无法测试,而ArchUnit可以测试。
➡️