软件设计是一门艺术,像其他艺术一样,它不能通过定理和公式以 一门精确科学的方式被教授和学习。通过软件创建的过程,我们可 以发现有用的规律和技巧,但是我们也许永远不能提供一个准确的 方法,以满足从现实世界映射到代码模型的需要。如同一幅画或者 一个建筑,软件产品既包括设计和开发它的那些人的个人劳动,也 包括致力于它发端和成长的那些人的某些领导力和洞察力。
“为了创建一个好软件,你必须知道这个软件究竟是什么。在你充分 了解金融业务是什么之前,你是做不出一个好的银行业软件系统 的,你必须理解银行业的领域。”
在启动一个软件项目时,我们应该关注软件涉及的领域。软件的最 终目的是增进一个特定的领域。为了达到这个目的,软件需要跟要 它服务的领域和谐相处,否则,它会给领域引入麻烦,产生障碍、 灾难甚至导致混乱等。
我们怎样才能让软件和领域和谐相处呢?最佳的方式是让软件成为 领域的反射(映射)。软件需要具现领域里重要的核心概念和元 素,并精确实现它们之间的关系。软件需要对领域进行建模。领域驱动设计的一个核心的原则是使用一种基于模型的语言。因为 模型是软件满足领域的共同点,它很适合作为这种通用语言的构造 基础。
使用模型作为语言的核心骨架。要求团队在进行所有的交流是都使 用一致的语言,在代码中也是这样。在共享知识和推敲模型时,团 队会使用演讲、文字和图形。这儿需要确保团队使用的语言在所有 的交流形式中看上去都是一致的。因为这个原因,这种语言被称为 “通用语言(Ubiquitous Language)”。
通用语言连接起设计中的所有的部分,建立了设计团队良好工作的 前提。可能会花费数周乃至数月的时间才能让一个大规模项目的设 计成型。团队成员会发现一些初始的概念是不正确的或者不合适 宜,或者发现一些需要考虑并放进总体设计中的新的设计元素。没 有了通用语言,所有的这一切都是不可能的。
DDD(Domain Driven Design)领域驱动设计简摘
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 道可道,非常道.名可名,非常名.无名天地之始,有名万物之母.---老子 关于标题 好久没写东西了,动笔的动机是看完...
- 10月有幸参加ThoughtWorks组织的《领域驱动的微服务架构设计实战工作坊》培训课程,尽管课程时间只有短短一...