# 领域驱动设计-软件核心复杂性应付之道
# 本书阶段性总结
# 阅读完第一章-消化知识
从开头到第一章读完, 几乎是一口气, 基本上理解了此书想解决的问题是什么(正如书名, 解决软件的可持续发展). 开篇第一章也算是让我真正了解软件的复杂性会带来的问题以及软件可持续发展会面临的问题, 这也正是我最近在工作遇到的问题, 项目从立项开始就确定是以敏捷开发模式进行, 但每次版本迭代永远只是在纯粹完成需求, 很少对核心的项目代码进行重构, 更没有DDD思想, 导致项目后期迭代的举步维艰. 现在项目上线5个月, 迭代几十个版本, 代码逻辑零散, 维护和扩展困难, 完全印证书中所述.
# 建模的作用
- 业务专家和技术人员能更轻松的沟通
- 系统更容易扩展和维护
- 新来的技术人员能更快上手(更容易理解业务)
# 成功建模的要素
- 模型要与实现绑定
- 头脑风暴, 不断优化模型, 不断测试
- 提炼模型
- 模型产生了特定的领域语言
- 模型中包含丰富的领域知识
# 10岁小孩的理解
建模就像你与外星人交流的过程
设想你们交流的主题是手机, 外星人是没有手机概念的, 首先你肯定需要与他们不断讨论, 形成最终共识, 这期间你们可能会进行头脑风暴, 并且不断优化模型, 提炼模型, 达到最终的概念, 定义手机为智能设备. 同时智能设备的相关操作, 你们也会给予新的定义, 例如打电话可能会被统称为智能通话. 这体现了建模中模型会包含丰富的领域知识以及领域语言. 而智能设备/手机这一概念本身是与现实强关联的.
