-
软件设计是一门艺术,像其他艺术一样,它不能通过定理和公式以 一门精确科学的方式被教授和学习。通过软件创建的过程,我们可 以发现有用的规律和技巧,但是我们也许永远不能提供一个准确的 方法,以满足从现实世界映射到代码模型的需要。如同一幅画或者 一个建筑,软件产品既包括设计和开发它的那些人的个人劳动,也 包括致力于它发端和成长的那些人的某些领导力和洞察力。
-
“为了创建一个好软件,你必须知道这个软件究竟是什么。在你充分 了解金融业务是什么之前,你是做不出一个好的银行业软件系统 的,你必须理解银行业的领域。”
-
在启动一个软件项目时,我们应该关注软件涉及的领域。软件的最 终目的是增进一个特定的领域。为了达到这个目的,软件需要跟要 它服务的领域和谐相处,否则,它会给领域引入麻烦,产生障碍、 灾难甚至导致混乱等。
我们怎样才能让软件和领域和谐相处呢?最佳的方式是让软件成为 领域的反射(映射)。软件需要具现领域里重要的核心概念和元 素,并精确实现它们之间的关系。软件需要对领域进行建模。 -
领域驱动设计的一个核心的原则是使用一种基于模型的语言。因为 模型是软件满足领域的共同点,它很适合作为这种通用语言的构造 基础。
使用模型作为语言的核心骨架。要求团队在进行所有的交流是都使 用一致的语言,在代码中也是这样。在共享知识和推敲模型时,团 队会使用演讲、文字和图形。这儿需要确保团队使用的语言在所有 的交流形式中看上去都是一致的。因为这个原因,这种语言被称为 “通用语言(Ubiquitous Language)”。
通用语言连接起设计中的所有的部分,建立了设计团队良好工作的 前提。可能会花费数周乃至数月的时间才能让一个大规模项目的设 计成型。团队成员会发现一些初始的概念是不正确的或者不合适 宜,或者发现一些需要考虑并放进总体设计中的新的设计元素。没 有了通用语言,所有的这一切都是不可能的。
网友评论