DDD

领域驱动模型DDD(三)——使用Saga管理事务

前言 虽然一直说想写一篇关于Saga模式,在多次尝试后不得不承认这玩意儿的仿制代码真不是我一个菜鸟就能完成的,所以还是妥协般地引用现成的Eventuate Tram Saga框架(虽然我对它一直很反感)和Seata的Saga模式。有一说一,我极其不愿意采用这种封装好的框架和解决方案对知识进行讲解,因 ... »

linchenguang

领域驱动模型DDD(二)——领域事件的订阅/发布实践

前言 凭良心来说,《微服务架构设计模式》此书什么都好,就是选用的业务过于庞大而导致代码连贯性太差,我作为读者来说对于其中采用的自研框架看起来味同嚼蜡,需要花费的学习成本实在是过于庞大,不仅要对书中的内容进行了解,还要去学习作者框架用法,最可恶的是官方文档还写得十分简洁。 不要跟我说《微服务架构设计模 ... »

linchenguang

领域驱动模型DDD(一)——服务拆分策略

前言 领域驱动模型设计在业界也喊了几年口号了,但是对于很多“务实”的程序员来说,纸上谈“术”远比敲代码难得太多太多。本人能力有限,在拜读相关作品时既要隐忍书中晦涩难懂的专业名词,又要去迎合西方大牛在撰写的过程中融入的西式故事。我想总会有一部分水平和我类似的码农们,需要一份对系统阐述DDD小白文化的文 ... »

linchenguang

Rafy 框架:领域控制器

本文简要说明如何使用 Rafy 框架中的领域控制器。 简介 领域控制器是 Rafy 框架中用于封装领域逻辑的主要方式。 在控制器中,开发者可以封装大量的业务逻辑,并向外暴露业务接口。内部的逻辑在实现时,往往调用一个或多个实体仓库的 CDUQ 方法来实现。 示例 以下代码为 Rafy.Accounts ... »

zgynhqf

PO模式在selenium自动化测试框架有什么好处

PO模式是在UI自动化测试过程当中使用非常频繁的一种设计模式,使用这种模式后,可以有效的提升代码的复用能力,并且让自动化测试代码维护起来更加方便。 PO模式的全称叫page object model(POM),有时候叫做 page object pattern。最开始由马丁福勒提出,这个模式受到se ... »

DDD:聊天笔记 - 幸福框架

聚合跟和实体聚合根是实体。实体有生命周期,使用标识进行跟踪。聚合根是全局标识,由仓储或其它服务负责其生命周期。实体是局部标识,由聚合根负责其生命周期。为什么能应对复杂度?纵向、横向、时间维度的合理划分 »

happyframework

开源DDD设计模式框架YMNNetCoreFrameWork第一篇

 DDD设计模式:仓储、领域模型、应用层、聚合根、事件总线,以业务模型驱动设计,从数据模型驱动脱离,不用关心数据库设计,开发效率更高  DDD领域驱动设计模型概念不再讲解,直接上技术 框架搭建:     如图所示, Host是程序的路口,用来配置项目的 Application,是应用层,为用户提供接口 Core,领域模型层 EntityFrameWorkCore,基础设施层,提供仓储,数据库迁移 »

DDD从入门到精通:基础篇

这篇文章主要还是表述清楚DDD相关的基础概念,因为DDD入门有一定的专业名词,还是得有个基本的了解。 先讲解下领域模型作用: 内在逻辑的一致性 1)划分边界、也是一种高内聚、低耦合 2)所有逻辑都是内聚在对象内部的【包含行为和数据】   为什么需要DDD?     行业现状:   贫血模型、充血模型   领域模型就是DDD? 其实领域模型早于DDD,很早就存在了,DDD算是一种实现方式而已 »

跨越DDD从理论到工程落地的鸿沟

摘要:本文从DDD的核心概念讲起,重点放在如何把理论落地成代码,期望给那些正在探索DDD的同学一些指引和启发。 本文分享自华为云社区《跨越DDD从理论到工程落地的鸿沟》,作者:敏捷小智。 DDD作为一种优秀的设计思想,的确为复杂业务治理带来了曙光。然而又因为DDD本身难以掌握,很容易造成DDD从理论 ... »

Axon框架快速入门和DDD项目实践

Axon 框架是基于JVM平台的开源产品,由Allard Buijze于2009年创立。2017年7月,成立了一家独立公司AxonIQ,专门与Axon产品合作。 Axon 框架的程序遵循基于领域驱动设计(DDD)思想、命令查询职责分离 (CQRS)、事件驱动架构(Event Driven Architecture,EDA)的架构模式。这些原则的结合,使基于Axon的应用程序更加健壮、适应性更强。 »

应用程序框架实战十六:DDD分层架构之值对象(介绍篇)

  前面介绍了DDD分层架构的实体,并完成了实体层超类型的开发,同时提供了验证方面的支持。本篇将介绍另一个重要的构造块——值对象,它是聚合中的主要成分。   如果说你已经在使用DDD分层架构,但你却从来没有使用过值对象,这毫不奇怪,因为多年来养成的数据建模思维已经牢牢把你禁锢,以致于你在使用面向对象方式进行开发时,还是以数据为中心。   当我们完成了基本的需求分析以后,如果说需要进行设计,那么你能 »

[转]DDD领域驱动设计基本理论知识总结

加一个导航,关于如何设计聚合的详细思考,见这篇文章。 2004年Eric Evans 发表Domain-Driven Design –Tackling Complexity in the Heart of Software (领域驱动设计),简称Evans DDD。领域驱动设计分为两个阶段: 以一种领域专家、设计人员、开发人员都能理解的通用语言作为相互交流的工具,在交流的过程中发现领域概念,然后将 »

应用程序框架实战十五:DDD分层架构之领域实体(验证篇)

  在应用程序框架实战十四:DDD分层架构之领域实体(基础篇)一文中,我介绍了领域实体的基础,包括标识、相等性比较、输出实体状态等。本文将介绍领域实体的一个核心内容——验证,它是应用程序健壮性的基石。为了完成领域实体的验证,我们在前面已经准备好了验证公共操作类和异常公共操作类。   .Net提供的DataAnnotations验证方法非常强大,Mvc会自动将DataAnnotations特性转换为 »

DDD~领域事件与事件总线

回到目录 谈谈它 终于有些眉目了,搜刮了很多牛人的资料,英文的,中文的,民国文的,终于小有成就了,同时也做了个DEMO,领域事件这东西好,但需要你明白它之后才会说好,而对于明白领域事件这件事来说,它的门槛有点高,居然花了我三天的时间才把它搞定,嗨! 占占给它的定义 领域事件:Domain Event,是针对某个业务来说的,或者说针对某个聚合的业务来说的,例如订单生成这种业务,它可以同时对应一种事件 »

图形化调试工具DDD

ubuntu安装DDD: sudo apt-get install ddd If you still need to compile it for some reason you should be able to pull in all the required packages by #sudo apt-get build-dep ddd       »

DDD—分层架构、洋葱架构、六边形架构

一、DDD分层架构         DDD分层架构中有很重要的依赖原则:每层只能与位于下方的层发生耦合,类似于网络的7层或TCP/IP的4层模型架构,每一层各司其职,并且只关心向下一层的实现,而不会出现各层耦合。         DDD分层架构中包含四层:从上到下分别是用户接口层,应用层,领域层和基础层。       二、洋葱架构         2008年Jeffrey Palermo已经 »

DDD领域驱动设计之领域基础设施层

1、DDD领域驱动设计实践篇之如何提取模型 2、DDD领域驱动设计之聚合、实体、值对象 其实这里说的基础设施层只是领域层的一些接口和基类而已,没有其他的如日子工具等代码,仅仅是为了说明领域层的一些基础问题 1、领域事件简单实现代码,都是来至ASP.NET设计模式书中的代码 namespace DDD.Infrastructure.Domain.Events { public interf »