领域驱动设计 (DDD)是一种软件构建方法,它强调多角色之间的协作,包括领域专家、开发人员和为满足业务目标而涉及到的其他角色,Naresh Bhatia以Bullsfirst为例解释了DDD基础概念的引进,这个例子取自财务传统领域中一个具有中等复杂度的系统,他希望这个例子能够易于大家的理解。
Bhatia参与了这个示例,他是一名软件架构师和和 Archfirst 的创始人,他学习DDD基础时提取出了他认为最重要的概念。
一门 统一的语言 是大家对领域形成共识的关键。在领域专家和开发人员交流时,使用公共术语可以尽可能地降低误解的风险,避免开发人员以编码术语来描述一个领域。
边界上下文 是一种将大领域划小的方式,以业务视角把不同的关注点分隔到它们所属的上下文中。Bhatia说,一个模型应该足够的小,小到可以由一个团队来负责。
在 领域模型 中除了这些最常见的概念(比如实体和价值对象)之外,Bhatia还总结了一些他觉得很重要的其他概念。
Bullsfirst 是Bhatia用作示例的系统,它是一个包含有RESTful API(遵循 REST Maturity Level 2 )使证券交易更简单的开源项目,是一个负责订单匹配和执行的交易所,是一个负责创建订单的订单管理系统。采用的技术包括有Java、.NET、FIX、messaging 和 Web Services。相关代码可 点此下载 。
查看英文原文: Clarifying Domain-Driven Design Using a Trading Application Example