随笔分类 - DDD
DDD,领域驱动设计
摘要:网上那么多DDD的文章,但代码工程却没有一个比较好的例子,本文将手把手跟你一起写DDD代码,学习DDD思想与代码相结合带来的好处。
阅读全文
摘要:随着业务的不断迭代和发展,用户数量也在高速增长。市场和业务环境的多变,需求往往是复杂多变的,如何快速响应变更。需求变更一次,版本迭代一次,软件就修改一次,软件修改一次,质量就下降一次。不论第一次的设计质量有多高,软件经历不了几次变更,就进入一种低质量、难以维护的状态。需要设计一套易于扩展和维护的系统。
阅读全文
摘要:应用架构,指软件系统中固定不变的代码结构、设计模式、规范和组件间的通信方式。在应用开发中架构之所以是最重要的第一步,因为一个好的架构能让系统安全、稳定、快速迭代。但是今天我们在做业务研发时,更多会关注一些宏观的架构,而忽略了应用内部的架构设计,希望能通过案例分析和重构,推演出一套高质量的DDD架构。
阅读全文
摘要:战略设计为我们提供一种高层视野来审视我们的软件系统,主要包括领域/子域、通用语言、限界上下文和架构风格等概念,
而战术设计则将战略设计进行具体化和细节化,它主要关注的是技术层面的实施,也是对程序员来得最实在的地方。
战术设计的目的是保证战略的实现。在DDD中,代码就是设计本身,你不再需要那些繁文缛节的并且永远也无法得到实时更新的设计文档。
警惕贫血对象,要创建行为饱满的领域对象并不难,我们需要转变一下思维,将领域对象当做是服务的提供方,而不是数据容器,多思考一个领域对象能够提供哪些行为,而不是数据。
阅读全文
摘要:实现领域驱动设计。领域是一个组织所做的事情以及其中所包含的一切。如何分析领域。划分子域,核心域、支撑域、通用域。问题空间和解决空间。通用语言。限界上下文,上下文映射。
阅读全文
摘要:2003 年埃里克·埃文斯(Eric Evans)发表了《领域驱动设计》。DDD全称Domain-Driven Design, 是一种处理复杂领域的设计思想,它试图分离技术实现的复杂性,并围绕业务概念构建领域模型来控制业务的复杂性,以解决软件难以理解,难以演进的问题,是面向对象的设计思想,是面向对象设计的一种升华。
阅读全文