业务分析和领域建模致力于“Do the RIGHT thing”,而设计和实现致力于“Do the thing RIGHT”。前者远比后者重要。若是你已经南辕北辙了,那么,你跑的越快,离目标就越远。数据库
可是国内大多数的软件公司、团队和开发者,在业务分析和领域建模方面作得不够好,究其缘由,大概是由于:安全
- 认识错误。觉得软件开发就是数据建模,以及针对数据的增删改查,彻底没想到须要领域建模。这样的开发模式每每是从现有数据库或报表入手,实现客户的表层需求,遗漏业务的本质机制。
- 对业务分析和领域建模的重要性认识不足,把大部分资源和精力投放在编码实现上。 缺少领域建模方面的指导和训练,没法快速而深入地洞察业务领域的本质,所以造成的领域模型充满各类误解和缺陷。
- 开发人员偏心钻研具体软件技术,不敢或不肯踏足业务领域分析。
若是建模不足(不够全面,不够深入,不够抽象),会产生下面的后果:编码
- 你的软件不符合或不彻底符合客户的须要。
- 你的软件只符合客户的浅层须要和当前须要,当客户须要有变化时(必然如此!),根本没法进行扩展和变动,或者须要对你的代码基作伤筋动骨的改动。
- 你的软件只符合当前客户的须要,当须要移植给同行业的其余客户使用时,须要对你的代码基作伤筋动骨的改动。
- 你的概念模型和技术实现紧密耦合,当须要技术升级或更换技术实现时,须要对你的代码基作伤筋动骨的改动。
好的领域模型深入反映了业务领域的本质,它不只知足客户的浅层须要,还能知足客户的深层须要;它不只知足客户的当前须要,还能知足客户的将来须要;它不只知足单一客户的须要,还能知足相同领域其余客户的须要。它使得软件能够快速、安全、低成本地进行扩展和修改,而不影响系统的主体结构。好的领域模型独立于软件技术实现,在软件技术快速升级换代的同时恒久地发挥做用。设计