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 的不朽著作《领域驱动设计:软件核心复杂性应对之道》面世,从书名可以看出,这是一本应对软件系统越来越复杂的方法论的图书。然而,在当时,中国的软件业才刚刚起步,软件系统还没有那么复杂,即使维护了几年,软件退化了,不好维护了,推倒重新开发就好了。因此,在过去的那么多年……
阅读全文
2021年10月8日
为什么叫六边形? 六边形建筑的名称来自此建筑通常描述的方式: 我们将回到为什么六边形在本文的后面使用。这种模式还属于端口和适配器(这更好地解释了它背后的中心思想)和洋葱结构(因为它是如何分层的)。 在下面,我们将仔细看看"洋葱"。我们将从核心 (领域模型) 开始,然后自……
阅读全文
2021年10月8日
与战略领领域驱动设计相比,战术设计更加实际,更接近实际代码。战略设计涉及抽象整体,而战术设计则涉及类和模块。战术设计的目的是将领域模型细化到可以转换为工作代码的阶段。 设计是一个迭代的过程,因此将战略设计与战术设计相结合是有意义的。你从战略设计开始,然后是战术设计。最大的领领域模型……
阅读全文
2021年10月8日
自Eric Evans于 2003 年出版关于该主题的书以来,领域驱动设计(DDD) 一直存在。几年前,当我加入一个存在数据一致性问题的项目时,我自己也接触到了 DDD。重复显示在数据库中,一些信息根本没有保存,可以随时随地遇到乐观的锁定错误。我们通过使用战术领域驱动设计的构建基块来解决这个问……
阅读全文