软件工程
文章平均质量分 91
码农丁丁
码农知识的搬运工,作为工作20年的码农,分享自己实践或看到的知识
展开
-
什么是TOGAF
TOGAF是由国际开放标准组织于1995年开发的,以美国国防部的“信息管理技术架构框架(TAFIM)”和凯捷的Integrated Architecture Framework(IAF)。开放组体系结构框架(英语:The Open Group Architecture Framework,缩写:TOGAF)是一个企业架构框架,它提供了一种设计,规划,实施和管理企业信息技术架构的方法。它提供了一套完整的方法和工具,包括架构开发方法(ADM)和一系列的技术参考模型。TOGAF 强调架构的可复用性和一致性。原创 2024-07-30 13:00:59 · 1362 阅读 · 0 评论 -
DDD学习推荐书籍
1、领域驱动设计 软件核心复杂性应对之道。2、领域驱动设计精粹。3、企业应用架构模式。4、实现领域驱动设计。5、解构领域驱动设计。原创 2024-05-18 21:41:39 · 435 阅读 · 0 评论 -
【DDD】学习笔记-聚合和聚合根:怎样设计聚合?
我们不妨在这里总结下聚合、聚合根、实体和值对象它们之间的联系和区别。高内聚、低耦合,它是领域模型中最底层的边界,可以作为拆分微服务的最小单位,但我不建议你对微服务过度拆分。但在对性能有极致要求的场景中,聚合可以独立作为一个微服务,以满足版本的高频发布和极致的弹性伸缩能力。一个微服务可以包含多个聚合,聚合之间的边界是微服务内天然的逻辑边界。原创 2024-03-02 21:26:06 · 2003 阅读 · 2 评论 -
【DDD】学习笔记-实体和值对象:从领域模型的基础单元看系统设计
从领域模型的基础单元看系统设计原创 2024-03-02 21:24:38 · 1515 阅读 · 0 评论 -
【DDD】学习笔记-限界上下文:定义领域边界的利器
限界上下文的定故意,以及和微服务的关系原创 2024-03-01 11:36:18 · 1389 阅读 · 0 评论 -
【DDD】学习笔记-领域、子域、核心域、通用域和支撑域:傻傻分不清?
领域的核心思想就是将问题域逐级细分,来降低业务理解和系统实现的复杂度。通过领域细分,逐步缩小微服务需要解决的问题域,构建合适的领域模型,而领域模型映射成系统就是微服务了。核心域、支撑域和通用域的主要目标是:通过领域划分,区分不同子域在公司内的不同功能属性和重要性,从而公司可对不同子域采取不同的资源投入和建设策略,其关注度也会不一样。原创 2024-03-02 00:15:00 · 1250 阅读 · 0 评论 -
【DDD】学习笔记-微服务设计为什么要选择DDD
今天我们主要讨论了微服务设计和拆分的难题。通过 DDD 战略设计可以建立领域模型,划定领域边界,解决微服务设计过程中,边界难以划定的难题。如果你的业务焦点在领域和领域逻辑,那么你就可以选择 DDD 作为微服务的设计方法!更关键的一点是,DDD 不仅可以用于微服务设计,还可以很好地应用于企业中台的设计。如果你的企业正在做中台转型,DDD 将会是一把利器,它可以帮你建立一个非常好的企业级中台业务模型。有关这点你还会在后面的文章中见到详解。原创 2024-03-01 00:15:00 · 905 阅读 · 0 评论 -
【DDD】员工上下文的领域建模实践
在创建一名新员工时,由于需要为其生成新的员工号,且员工号的生成需要访问数据库,为保证请求消息对象的单一职责,就需要将转换职责分配给专门的装配器 OnboardingRequestAssembler。项目任务的信息会自动成为项目日志内容的一部分,员工可以编辑项目日志的内容。在《领域驱动战略设计》中,我已经全面梳理和介绍了 EAS 系统的项目背景、业务期望与愿景,通过需求分析和问题痛点分析获得了系统的子领域,通过确定的业务主流程与史诗级故事和主故事获得了系统的主要用例,并由此确定了整个系统的限界上下文。原创 2024-02-29 07:45:00 · 1016 阅读 · 0 评论 -
【DDD】学习笔记-领域驱动设计的精髓
许多人反应领域驱动设计很难。Eric Evans 创造了许多领域驱动设计的专有术语,这为团队学习领域驱动设计制造了知识障碍。对象范式的领域驱动设计建立在良好的面向对象设计基础上,如果开发人员对面向对象设计的本质思想理解不深,就会在运用领域驱动设计的模式时,显得首鼠两端,不知道该做出怎样的设计决策才满足领域驱动设计的要求。这种执着于书本知识的运用方式过于僵化,一旦面临设计难题又找不到标准答案时,就不知该如何是好了。原创 2024-02-29 05:30:00 · 818 阅读 · 0 评论 -
【DDD】学习笔记-领域驱动设计参考过程模型
通过领域驱动设计魔方,我们从业务、技术与管理三个维度引入了有助于领域驱动设计的方法和模式,同时梳理了影响领域驱动战略设计的架构因素,确定以“四个边界”为核心对领域逻辑进行控制,规定了领域驱动设计团队必须遵循的纪律,这一切的目的都是为了能够帮助团队完成领域驱动设计的落地。为了确保领域驱动设计的包容性和开放性,只要不违背领域驱动设计的核心思想,诸多方法、模式与实践都可以纳入到这个方法体系中,使得领域驱动设计能够面对不同的领域不同的需求提供更合理的设计方法;原创 2024-02-29 00:15:00 · 976 阅读 · 0 评论 -
【DDD】学习笔记-模型对象
不同的建模视角会产生不同的模型,但这并不意味着选择一种建模视角就仅仅会产生一种模型,而是指建模的过程围绕着什么样的模型为核心。领域模型驱动设计自然以领域模型为核心,但在限界上下文内部,分层架构的不同层次仍然可能由不同的模型对象组成。除了领域层包含了领域模型,在基础设施层中,面向数据库的是否需要单独建立数据模型,面向外部调用者的远程服务是否需要建立服务模型呢?原创 2024-02-28 18:00:00 · 1052 阅读 · 0 评论 -
【DDD】学习笔记-设计概念的统一语言
设计概念的统一语言原创 2024-02-28 11:45:00 · 1033 阅读 · 0 评论 -
【DDD】学习笔记-分布式柔性事务
倘若一个领域模型要作为 TCC 模式的事务资源,就需要定义相关属性支持对资源自身的锁定或预留。同时,每个作为参与方的业务服务接口都需要定义 Try、Confirm 与 Cancel 方法,在实现这些方法时,还需要保证这些方法具有幂等性。为了尽量避免 TCC 模式对领域模型产生影响,关键之处在于遵循整洁架构思想,让领域模型不要依赖本属于基础设施的 TCC 实现机制或框架。因此,在领域驱动分层架构中,应由基础设施层中扮演北向网关的远程服务作为 TCC 模式发起方与参与方的服务。原创 2024-02-28 08:00:00 · 1199 阅读 · 0 评论 -
【DDD】学习笔记-命令查询职责分离
命令查询职责分离原创 2024-02-28 07:30:00 · 1047 阅读 · 0 评论 -
【DDD】学习笔记-限界上下文之间的分布式通信
限界上下文之间的分布式通信原创 2024-02-28 06:00:00 · 951 阅读 · 0 评论 -
【DDD】学习笔记-限界上下文的边界与协作
限界上下文的边界与协作原创 2024-02-28 01:45:00 · 1693 阅读 · 0 评论 -
【DDD】学习笔记-子领域与限界上下文
子领域与限界上下文的关系剖析原创 2024-02-27 21:34:46 · 1016 阅读 · 0 评论 -
【DDD】学习笔记-领域驱动设计体系
领域驱动设计体系原创 2024-02-27 21:32:48 · 1654 阅读 · 0 评论 -
【DDD】学习笔记-领域驱动设计对持久化的影响
如何重用资源库的实现,以及如何隔离领域层与基础设施层的持久化实现机制,具体的实现还要取决于开发者对 ORM 框架的选择。Hibernate、MyBatis、jOOQ 或者 Spring Data JPA(当然也包括基于 .NET 的 Entity Framework、NHibernate 或 Castle 等),每种框架自有其设计思想和原则,提供了不同的最佳实践来指导开发人员以更适宜的方式编写持久化实现原创 2024-02-27 21:31:28 · 894 阅读 · 0 评论 -
【DDD】学习笔记-领域模型与数据模型
领域模型与数据模型的关系分析原创 2024-02-25 05:00:00 · 1087 阅读 · 0 评论 -
【DDD】学习笔记-对象关系映射
领域模型的持久化和对象关系映射分析原创 2024-02-25 00:15:00 · 941 阅读 · 0 评论 -
【DDD】学习笔记-薪资管理系统的测试驱动开发2
测试驱动开发过程原创 2024-02-24 06:00:00 · 1830 阅读 · 0 评论 -
【DDD】学习笔记-薪资管理系统的测试驱动开发
测试驱动开发案例原创 2024-02-24 02:30:00 · 2170 阅读 · 0 评论 -
【DDD】学习笔记-深入理解简单设计
简单设计理解、重构,设计实例原创 2024-02-23 22:12:21 · 1042 阅读 · 0 评论 -
【DDD】学习笔记-测试驱动的领域实现建模
测试驱动的领域实现建模原创 2024-02-23 06:00:00 · 1061 阅读 · 0 评论 -
【DDD】学习笔记-事件溯源模式
事件溯源模式的定义、实践原创 2024-02-23 02:00:00 · 2113 阅读 · 0 评论 -
【DDD】学习笔记-发布者—订阅者模式
订阅者模式原创 2024-02-22 14:19:29 · 1601 阅读 · 0 评论 -
【DDD】学习笔记-场景驱动设计与 DCI 模式
场景驱动设计与 DCI 模式定义和实现思路原创 2024-02-22 11:02:07 · 1149 阅读 · 0 评论 -
【DDD】学习笔记-薪资管理系统的场景驱动设计
场景驱动设计案例原创 2024-02-21 06:00:00 · 770 阅读 · 0 评论 -
【DDD】学习笔记-场景的设计驱动力
场景定义和场景驱动设计过程原创 2024-02-21 00:15:00 · 1688 阅读 · 0 评论 -
【DDD】学习笔记-应用服务
应用服务设计原创 2024-02-20 05:45:00 · 1641 阅读 · 0 评论 -
【DDD】学习笔记-领域设计模型的价值案例
领域驱动设计价值案例原创 2024-02-20 00:15:00 · 2002 阅读 · 0 评论 -
【DDD】学习笔记-领域模型对象的生命周期-资源库
领域模型对象的生命周期-资源库原创 2024-02-19 00:15:00 · 1682 阅读 · 0 评论 -
【DDD】学习笔记-领域模型对象的生命周期-工厂
领域模型对象的生命周期-工厂原创 2024-02-19 00:30:00 · 731 阅读 · 0 评论 -
【DDD】学习笔记-培训领域模型的聚合设计案例
培训领域模型的聚合设计案例原创 2024-02-18 05:45:00 · 1633 阅读 · 0 评论 -
【DDD】学习笔记-聚合的设计过程
聚合设计过程原创 2024-02-18 00:15:00 · 1061 阅读 · 0 评论 -
【DDD】学习笔记-聚合之间的关系
实体聚合关系原创 2024-02-17 05:30:00 · 1762 阅读 · 0 评论 -
【DDD】学习笔记-聚合设计原则
聚合设计原则原创 2024-02-17 00:15:00 · 1681 阅读 · 0 评论 -
【DDD】学习笔记-对象图与聚合
类关系原创 2024-02-16 06:00:00 · 846 阅读 · 0 评论 -
【DDD】学习笔记-值对象
值对象原创 2024-02-16 00:15:00 · 1904 阅读 · 0 评论