2021年10月14日
转摘:https://zhuanlan.zhihu.com/p/366395817 在过去一年里我们团队做了大量的老系统重构和迁移,其中有大量的代码属于流水账代码,通常能看到是开发在对外的API接口里直接写业务逻辑代码,或者在一个服务里大量的堆接口,导致业务逻辑实际无法收敛,接口复……
阅读全文
2021年10月14日
转摘:https://www.jdon.com/52189 它也称为战略建模,它是DDD的支柱,其主要目标是与整个项目团队(领域专家和技术团队)一起定义有界上下文,统一的无所不在语言和上下文映射。 要清楚地了解战略项目是什么,您需要掌握我所谈到的每个概念。 有界上下文/界定上下文 有界上……
阅读全文
2021年10月14日
转摘:https://www.jianshu.com/p/0f24360d47f3 1.什么是DDD 先看下万能的维基百科:Domain-driven design (DDD) is the concept that the structure and language of software code (class names, class methods, class variables) should match the business domain. For example, if a software processes loan applications, it might have classes such as LoanApplication and Customer, and methods such as AcceptOffer and Withdraw. 这边将其称为了一个概念。在我看来DDD……
阅读全文
2021年10月14日
转摘:https://www.jianshu.com/p/738d16723f81 1.前言 最近我发现团队某项目的复杂度越来越高(典型的三层架构),具体表现为: 代码可读性较差:各个服务之间调用复杂,流程不清晰 修改某服务业务代码导致大量无关服务的测试用例失败,单个功能开发者很难迅速定……
阅读全文
2021年10月14日
转摘:https://zhuanlan.zhihu.com/p/356518017 在一个DDD架构设计中,领域层的设计合理性会直接影响整个架构的代码结构以及应用层、基础设施层的设计。但是领域层设计又是有挑战的任务,特别是在一个业务逻辑相对复杂应用中,每一个业务规则是应该放在Ent……
阅读全文
2021年10月14日
转摘:https://zhuanlan.zhihu.com/p/348706530 在讲Repository之前其实应该先讲Entity(实体)、Aggregate Root(聚合根)、BoundedContext(限界上下文)等概念。但在实际写的过程中,发现单纯讲Entity相关的……
阅读全文
2021年10月14日
转摘:https://zhuanlan.zhihu.com/p/343388831 架构这个词源于英文里的“Architecture“,源头是土木工程里的“建筑”和“结构”,而架构里的”架“同时又包含了”架子“(scaffolding)的含义,意指能快速搭建起来的固定结构。而今天的……
阅读全文
2021年10月14日
转摘:https://zhuanlan.zhihu.com/p/340911587 导读 对于一个架构师来说,在软件开发中如何降低系统复杂度是一个永恒的挑战,无论是 94 年 GoF 的 Design Patterns , 99 年的 Martin Fowler 的 Refactoring , 02 年的 P of EAA ,还是 03 年的 Enterprise Integration Patterns ,都是通过一系列的设计模式或范例来降低一些常见的复杂度。 但是……
阅读全文
2021年10月11日
一、DDD的基本概念和设计流程 1、DDD的概念 DDD: Domain Driven Design Eric Evans:《领域驱动设计:软件核心复杂性应对之道》里面一段话: DDD先对业务领域进行分析,建立领域模型,根据领域模型驱动代码设计 2、使用DDD的原因和好处 最重要的一点是,DDD是类似于微服务中台落地的指导思想,这也是DD……
阅读全文
2021年10月10日
2004 年,软件大师 Eric Evans 的不朽著作《领域驱动设计:软件核心复杂性应对之道》面世,从书名可以看出,这是一本应对软件系统越来越复杂的方法论的图书。然而,在当时,中国的软件业才刚刚起步,软件系统还没有那么复杂,即使维护了几年,软件退化了,不好维护了,推倒重新开发就好了。因此,在过去的那么多年……
阅读全文