在做架构设计时,一个好的架构应该需要实现以下几个目标:
独立于框架:
架构不应该依赖某个外部的库或框架,不应该被框架的结构所束缚。
独立于UI:
前台展示的样式可能会随时发生变化(今天可能是网页、明天可能变成console、后天是独立app),但是底层架构不应该随之而变化。
独立于底层数据源:
无论今天你用MySQL、Oracle还是MongoDB、CouchDB,甚至使用文件系统,软件架构不应该因为不同的底层数据储存方式而产生巨大改变。
独立于外部依赖:
无论外部依赖如何变更、升级,业务的核心逻辑不应该随之而大幅变化。
可测试:
无论外部依赖了什么数据库、硬件、UI或者服务,业务的逻辑应该都能够快速被验证正确性。
然而今天我们在做业务研发时,更多的会去关注一些宏观的架构,比如SOA架构、微服务架构,而忽略了应用内部的架构设计,很容易导致代码逻辑混乱,很难维护,容易产生bug而且很难发现。DDD架构是解决这些问题的不二之选。