1、Domian层的价值就在于,它为我们提供了一种内聚业务逻辑、显性化表达业务语义的地方。
避免散淡式的代码
Knowledge Rich Design (知识丰富的设计)
2、我更愿意把Domain层设计成开放的,这种开放性不仅体现在CQRS的时候,App可以绕过Domain层直达Infrastructure;也体现在当你的团队实在hold不住DDD的时候,可以选择退化到老的三层架构。
3、“先把App做厚,再把App做薄”
先可以把业务逻辑都写到App里面,在写的过程中,我们会发现有一些业务逻辑,不仅仅是过程式的代码,它也是领域知识(Domain knowledge),应该被更加清晰、更加内聚的表达出来,那么我们就可以把这段代码沉淀为领域能力。
4、落地DDD工程的开发范式
-
梳理业务:梳理业务流程,挖掘领域概念,形成统一语言。
-
战略设计:划分领域边界,建立限界上下文。
-
战术设计:寻找实体,建立关系,形成领域模型。
-
API设计:根据用户故事,输出服务功能API。
-
做厚App:根据API功能要求,在App层编写业务过程代码。
-
做薄App:以领域模型为基础,优化过程代码,沉淀领域能力和领域知识,让业务语义显性化,做到Knowledge Rich Design (知识丰富的设计)。
-
技术细节:完善技术细节代码,比如API的暴露方式(RPC 或者 Restful),数据的存储方式(关系数据库 或者 NoSQL),ORM框架的选用(MyBatis 或者 JPA)等等。
5、
标签:Domain,App,领域,API,关于,一些,代码,DDD From: https://www.cnblogs.com/huilei/p/17207856.html