领域驱动战术模式代码结构
软件的本质就是对真实世界的模拟。
软件中业务逻辑与真实世界一致,则软件是 OK 的;不一致,则用户会提 Bug、提新需求。
问题:用户为什么总在改需求?
用户也不确定客观世界的规则,只有遇到问题了他们才能知道。
问题:为什么不按照真实世界开发软件?
真实世界是非常复杂的,要深刻理解真实世界中的这些业务逻辑是需要一个过程的。
一开始,只能认识真实世界中那些简单、清晰、易于理解的业务逻辑;将这些做出来第一个版本交给用户。
然后,用户根据第一个版本发现了不在版本中的很多不简单、不明了、不易于理解的业务逻辑。提 Bug、提新需求。
程序员不断地修复 Bug,实现新需求的过程中,软件的业务逻辑也会越来越接近真实世界。业务逻辑就会变得越来越复杂,软件规模也越来越庞大。
问题:为什么软件越来越难维护?
简单软件有简单软件的设计,复杂软件有复杂软件的设计。不断地修复 Bug,实现新需求的过程中,没有调整软件设计。