什么是域,它为何重要?
Source: Dev.to
为什么领域很重要
作为一名软件工程师,我学到的最重要的事情之一就是围绕领域来设计系统。
在软件设计中,领域可以定义为任何有用的业务单元。例如,如果业务是房地产,那么一个领域可能是 租赁,另一个可能是 销售。每个领域都有自己的规则和逻辑,它们共同构成业务的完整图景。
与业务语言脱节的问题
为什么软件——代码、数据库实体、工具等——会使用技术性且晦涩的名称?为什么软件和业务会说两种不同的语言?
这种脱节会产生我们在软件开发中都见过的问题:
- 术语不匹配 – 产品/业务和工程在谈论同一件事时使用不同的词汇,导致不必要的混淆和摩擦。
- 业务规则分散 – 边界变得模糊,导致技术债务。技术债务会让软件变得僵硬,维护起来头疼,并且无法随产品演进。
围绕领域设计的好处
当我们围绕领域进行设计时,会创建出表达力强的软件——这种表达力强到即使没有编码细节,任何具备业务知识的人也能理解大部分发生的事情。易读的代码是可持续软件的根本要素。
领域如此重要,以至于它是任何“清洁”架构的核心。其他所有层都依赖于领域,而领域本身不依赖于任何其他层。要理解一个系统,首先要理解它试图解决的问题。
领域驱动设计 (DDD)
正因为它的重要性,出现了一种设计哲学——领域驱动设计(Domain‑Driven Design,DDD)。当你在此语境中听到“领域”时,你现在已经知道它指的是什么,并且拥有了一个清晰的起点来着手处理复杂系统。