0%

软件与现实

领域驱动战术模式代码结构

软件的本质就是对真实世界的模拟。

软件中业务逻辑与真实世界一致,则软件是 OK 的;不一致,则用户会提 Bug、提新需求。

问题:用户为什么总在改需求?

用户也不确定客观世界的规则,只有遇到问题了他们才能知道。

问题:为什么不按照真实世界开发软件?

真实世界是非常复杂的,要深刻理解真实世界中的这些业务逻辑是需要一个过程的。

一开始,只能认识真实世界中那些简单、清晰、易于理解的业务逻辑;将这些做出来第一个版本交给用户。

然后,用户根据第一个版本发现了不在版本中的很多不简单、不明了、不易于理解的业务逻辑。提 Bug、提新需求。

程序员不断地修复 Bug,实现新需求的过程中,软件的业务逻辑也会越来越接近真实世界。业务逻辑就会变得越来越复杂,软件规模也越来越庞大。

问题:为什么软件越来越难维护?

简单软件有简单软件的设计,复杂软件有复杂软件的设计。不断地修复 Bug,实现新需求的过程中,没有调整软件设计。