关联知识库:DDD —— 隐性知识的显化
DDD —— 隐性知识的显化
我的理解
DDD本质上是将单一职责、模块化、面向对象等思想在业务系统设计中的经验性应用。
关键观点
- 站在巨人的肩膀上
- 条条框框的教条主义,知识是死的,问题却是千变万化的
设计模式是面向对象实践的经验性总结,而DDD领域驱动设计亦是业务系统到软件系统映射的经验总结。
️ DDD的核心本质
- 领域建模本质就是面向对象的建模设计
- 分层架构的思想来源于复杂度分离,单一职责等设计思路
- 通过模块化,单一职责等思想界定上下文
得物技术文章引用
https://tech.dewu.com/article?id=113
对于领域驱动设计来说,应该遵循一个道理:不拘于形式(有点类似电影里的,剑客最高的境界是身边无剑,但是任何所见皆可为剑的感觉)。文章的前面部分,我讲了许多的概念:聚合根、值对象、领域事件、限界上下文等,但是实际设计开发过程中,并不需要照搬全套的体现出来,只要能够表达清楚核心的实体和关系、清晰的边界和合理的扩展性即是好的领域设计。当然这篇文章主要是理论部分,实战部分我还是想先把战术设计的全貌先展现一遍,最终再做精简,这样可以 既知全貌,却不教条 。
同时我再强调下, 合格的技术专家一定是半个业务专家 ,而DDD这套方法论,可以让技术同学很好的去全局理解业务形态,同时以结构化的思维去抽象业务概念,既能 提升全局的认知高度和架构能力,也能加强细节把控力 ,所以它是一套很好的 软件设计复杂性解决之道 。
最后回到最初那个问题,一个FBI(数据看板系统),一个电商交易系统,它们都适合用DDD吗,为什么?
参考资料
https://www.cnblogs.com/jimoer/p/19053144
怒喷DDD ~ ~ ~
- 拥抱毒瘤 DDD! - 微信公众号