关于DDD和COLA的一些总结和思考】的更多相关文章

关于DDD的理论知识总结,可参考这篇文章. DDD社区官网上一篇关于聚合设计的几个原则的简单讨论: 文章地址:http://dddcommunity.org/library/vernon_2011/,该地址中包含了一篇关于介绍如何有效的设计聚合的一些原则,共3个pdf文件.该文章中指出了以下几个聚合设计的原则: 聚合是用来封装真正的不变性,而不是简单的将对象组合在一起: 聚合应尽量设计的小: 聚合之间的关联通过ID,而不是对象引用: 聚合内强一致性,聚合之间最终一致性: 上面这几条原则,作者通过…
一.简要介绍 ABP vNext 框架本身就是围绕着 DDD 理念进行设计的,所以在 DDD 里面我们能够见到的实体.仓储.值对象.领域服务,ABP vNext 框架都为我们进行了实现,这些基础设施都存放在 Volo.Abp.Ddd.Domain 项目当中. 本篇文章将会侧重于理论讲解,但也只是一个抛砖引玉的作用,关于 DDD 相关的知识可以阅读 Eric Evans 所编写的 <领域驱动设计:软件核心复杂性应对之道>. PS: 该书也是目前我正在阅读的 DDD 理论书籍,因为基于 DDD 理…
某大型互联网公司于2019年开始在XX中台财务域进行DDD实践.事后回顾,整体并没有达到预期的效果,个人也做了很多的反思和总结,形成此文. 1. 背景 为什么当时要实践DDD?其中的缘由比较复杂,可以从外部和内部两个视角来看. 首先,从外部也即整个BU的视角来看,最先开始实践DDD的是A域,并在该域诞生了一套在公司现有RPC框架之上的业务SPI框架(以下简称为[N框架]).相较于dubbo这样纯技术的服务框架,它有以下特点: 标榜serverless,自身提供了代码托管和运行容器,可以直接进行服…
思考ValueObject应该更多从内存的角度思考,而非DB持久化的角度. 例如: public class A { public int Id { get; set; } public Address A_Address { get; set; } } public class B { public int Id { get; set; } public Address B_Address { get; set; } } public class Address { public Addres…
 如果我看得更远,那是因为我站在巨人的肩膀上.(If I have seen further it is by standing on ye shoulder of Giants.)                                                                                                                                                              …
 基于DDD领域驱动设计的思想,在开发具体系统时,需要先建立不同的层级包.主要是梳理不同层面(应用层,领域层,基础设施层,展示层)包括的功能目录,每一个层面应该包括哪些模块.本例所讲述的分层是DDD落地方案中常用的一种(参考),且本例适当做了调整和细化.详细分层目录参考下图: 1. 展示层 展现层(用户接口层)(Presentation Layer):负责以Restful的格式接受Web请求,然后将请求路由给Application层执行,并返回视图模型(View Model),其载体通常是DTO…
摘要:本文从DDD的核心概念讲起,重点放在如何把理论落地成代码,期望给那些正在探索DDD的同学一些指引和启发. 本文分享自华为云社区<跨越DDD从理论到工程落地的鸿沟>,作者:敏捷小智. DDD作为一种优秀的设计思想,的确为复杂业务治理带来了曙光.然而又因为DDD本身难以掌握,很容易造成DDD从理论到工程落地之间出现巨大的鸿沟.就像电影里面的桥段,只谈DDD理论姿势很优美,一旦工程落地就跪了......所以DDD的项目,工程落地很重要,否则很容易变成"懂得了很多道理,却依然过不好这一…
一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情. 本文开始前,问大家一个问题,你觉得一份业务代码,尤其是互联网业务代码,都有哪些特点? 我能想到的有这几点: 互联网业务迭代快,工期紧,导致代码结构混乱,几乎没有代码注释和文档. 互联网人员变动频繁,很容易接手别人的老项目,新人根本没时间吃透代码结构,紧迫的工期又只能让屎山越堆越大. 多人一起开发,每个人的编码习惯不同,工具类代码各用个的,业务命名也经常冲突,影响效率. 大部分团队几乎没有时间做代码重构,…
DDD(Domain-Driven Design) 领域驱动设计 1. DDD(Domain-Driven Design)是什么? DDD是Eric Evans在2003年出版的<领域驱动设计:软件核心复杂性应对之道>(Domain-Driven Design: Tackling Complexit…
领域驱动设计(Domain Driven Design,简称:DDD)设计思想和方法论早在2005年时候就被提出来,但是一直没有重视和推荐使用,直到2015年之后微服务流行之后,再次被人重视和推荐使用. 下面我来介绍一下DDD设计思想和方法论,同时结合我们在实际项目中应用总结和思考. 目录 1.为什么要用DDD 2.DDD架构设计 3.领域建模方法 4.代码实践 5.问题总结 1.为什么要用DDD 面向过程      很多时候,我们都是操着面向对象的语言干着面向过程的勾当.大部分的系统都是从单一…