项目怎样开发才能确保成功?
什么软件才能提供价值?
什么团队才是优秀团队?
这是序章中提出的问题,也是《领域驱动设计》一书最终的意义。
这些问题是我们工作中最常遇到的问题也是我们最难回答的问题,从项目立项到最后的项目上线,我们在这个过程中必须要做到哪些点,才能最终保证工作成功。
入手点
排除大多数的外在因素,在大多数项目中应该做到两点。
1.主要焦点应该是领域和领域逻辑。
2.复杂的领域设计应该基于模型。
对于领域和领域逻辑的理解上,我认为他们接近于我们所常说的‘业务’,更准确的应该理解为全局业务中专注于某一块的业务。这部分业务会组成该流程中单独的一套逻辑,类似于我们轮胎制造行业中要区分成型、硫化、半成品等各个更细的业务单元,每个业务单元有着自己一套独立的模型。
设计与开发过程
我们日常学习中更关注于专业知识的学习,包括我们的编程语言、设计模式、sql优化等等,了解了市面上很多的流行思想,但是在进入工作之后却很难将这些设计思想应用到实际的工作中,对于那些地方应该去充分设计而那些地方应该放弃设计。这些问题往往导致我们前期的设计工作陷入僵局。
领域驱动的设计思路更偏向于“敏捷开发过程”。
1.充分迭代,在不断地更新中让软件更加完善。
2.开发人员与领域专家的关系。在结合领域驱动设计的过程中,消化关的领域知识,聚焦领域过程中的关键因素。
应该避免创建出难以理解、修改的代码。对意外需求担心导致的过度设计,试图避免这种情况导致不做深入设计的思考。是我们应该解决的问题。
过程
1.提出领域驱动模型
2.消除模型与实际运行的软件之间的鸿沟
3.意识到不是有价值的模型会立马出现,需要对领域模型深入理解。
4.探索是无止境的,保持正确的建模原则。