领域驱动设计
普通网友
这个作者很懒,什么都没留下…
展开
-
DDD 学习01
DDD 是一种处理高度复杂领域的设计思想,它试图分离技术实现的复杂性,并围绕业务概念构建领域模型来控制业务的复杂性,以解决软件难以理解,难以演进的问题。DDD 不是架构,而是一种架构设计方法论,它通过边界划分将复杂业务领域简单化,帮我们设计出清晰的领域和应用边界,可以很容易地实现架构演进...原创 2020-07-21 22:32:58 · 648 阅读 · 0 评论 -
极客时间 DDD 学习笔记04
16 | 视图:如何实现服务和数据在微服务各层的协作?17 | 从后端到前端:微服务后,前端如何设计?19 | 总结(一):微服务设计和拆分要坚持哪些原则?20 | 总结(二):分布式架构关键设计10问...原创 2020-02-29 20:53:45 · 330 阅读 · 0 评论 -
极客时间 DDD 学习笔记03
11 | DDD实践:如何用DDD重构中台业务模型?12 | 领域建模:如何用事件风暴构建领域模型?13 | 代码模型(上):如何使用DDD设计微服务代码模型?14 | 代码模型(下):如何保证领域模型与代码模型的一致性?15 | 边界:微服务的各种边界在架构演进中的作用?...原创 2020-02-29 18:40:38 · 461 阅读 · 0 评论 -
极客时间 DDD 学习笔记02
06 | 领域事件:解耦微服务的关键 在事件风暴(Event Storming)时,我们发现除了命令和操作等业务行为以外,还有一种非常重要的事件,这种事件发生后通常会导致进一步的业务操作,在 DDD 中这种事件被称为领域事件。07 | DDD分层架构:有效降低层与层之间的依赖08 | 微服务架构模型:几种常见模型的对比和分析...原创 2020-02-29 00:19:55 · 296 阅读 · 0 评论 -
极客时间 DDD 学习笔记01
01 | 领域驱动设计:微服务设计为什么要选择DDD?02 | 领域、子域、核心域、通用域和支撑域:傻傻分不清?原创 2020-02-28 08:10:39 · 799 阅读 · 0 评论 -
分布式跟踪系统学习 zipkin 原理概述01
概述Zipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 Google Dapper的论文设计而来,由 Twitter 公司开发贡献。其主要功能是聚集来自各个异构系统的实时监控数据如上图所示,各业务系统在彼此调用时,将特定的跟踪消息传递至zipkin,zipkin在收集到跟踪信息后将其聚合处理、存储、展示等,用户可通过web U...原创 2019-11-09 10:37:02 · 231 阅读 · 0 评论 -
实现领域驱动设计 第6章 值对象
值对象不能改变,也可以用于计算出新的属性。set方法被声明为private,外界不能直接调用如果实体对象有可能违背值对象的不变性,那么我们便没有理由在值对象中引用实体对象。函数不破坏值对象的不变性...原创 2019-10-30 16:09:33 · 168 阅读 · 0 评论 -
实现领域驱动设计 第5章 实体
唯一的身份标识和可变性特征,将实体对象和值对象区分开来在可以使用DDD的情况下,我们会将数据模型转变为实体模型。用户提供唯一标识:不推荐应用程序生成唯一标识 事件通知,实现对象同步 领域语言优先于技术实现,在DDD中,业务领域的模型最重要验证属性验证整体对象 延迟验证 : 对复杂对象的验证,甚至对对象组合...原创 2019-10-28 18:22:15 · 162 阅读 · 0 评论 -
实现领域驱动设计 第4章 架构
由于核心域位于限界上下文中,我们可以在整个系统中使用多种风格的架构用户接口层 --> 应用层 --> 领域层 --> 基础设施层当领域模型用于发布领域事件,应用层可以将订阅方注册到任意数量的事件上,可以对事件进行存储和转发+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++...原创 2019-10-24 14:59:12 · 199 阅读 · 0 评论 -
实现领域驱动设计 第3章 上下文映射图
上下文映射图:表示链各个或多个限界上下文之间的映射关系处理资源不可用的一个好办法,便是将其显现出来,此时的状态是一个值对象...原创 2019-10-24 10:37:02 · 246 阅读 · 0 评论 -
实现领域驱动设计 阅读笔记 第2章 领域 子域和限界上下文
核心域 子域在DDD中,一个领域被分为若干子域通过使用DDD战略设计工具,我们可以按照实际功能将这些交织的模型划分成逻辑上相互分离的子域,从而减少系统复杂性核心域 :核心支撑子域 : 专注于业务的某个方面通用子域 :子域被用于整个业务系统一个限界上下文不是只包含领域模型,通常标定了一个系统,一个应用程序或者一种业务服务当领域模型驱动着数据库s...原创 2019-10-21 21:01:37 · 175 阅读 · 0 评论 -
实现领域驱动设计 阅读笔记 第1章 DDD 入门
贫血领域对象反映了一种自然地过程式的编程风格 市场上的几乎每种框架都要求对象暴露公有属性。这样一来,多数开发者只能被动地接受那些贫血对象,于是我们便到了,“到处都是贫血对象”的地步 贫血症导致的失忆症+++++++++++++++++++++++++++++++++++++++++++++++++++++++DDD 特性 通用...原创 2019-10-20 11:37:28 · 189 阅读 · 0 评论 -
DDD 领域驱动设计 实践03
阿里盒马领域驱动设计实践前言设计是把双刃剑,没有最好的,也没有更好的,而是条条大路到杭州。同时不设计和过度设计都是有问题的,恰到好处的设计才是我们追求的极致。DDD(Domain-Driven Design,领域驱动设计)只是一个流派,谈不上压倒性优势,更不是完美无缺。 我更想跟大家分享的是我们是否关注设计本身,不管什么流派的设计,有设计就是好的。从我看到的代码上来讲,阿里集团内部...原创 2019-10-19 17:47:44 · 470 阅读 · 0 评论 -
DDD 领域驱动设计 实践02
一、新垂直交易系统演进的背景烟囱式15年初, O2O上门服务(保洁、推拿等等)进行的如火如荼,行业内涌现了数个估值上亿的到家服务公司。O2O的重要玩家,点评希望通过对接这类公司为用户提供服务。作为平台方,需要在短期内接入尽可能多不同品类的第三方。公司从新垂直团队和搜索团队紧急抽调数十人团队进行研发。此时,研发和产品同学均只负责过信息线业务,无任何交易业务的经验。通过一个月的紧张研发,业务顺...原创 2019-10-19 17:13:02 · 331 阅读 · 0 评论 -
DDD 领域驱动设计 第1章 消化知识
原创 2019-10-17 21:18:37 · 121 阅读 · 0 评论 -
DDD 领域驱动设计 第2章 交流与语言的使用
讨论系统时要结合模型。使用模型元素及其交互来大声描述场景,并且按照模型允许的方式 将各种概念结合到一起。找到更简单的表达方式来讲出你要讲的话,然后将这些新的想法应用到 图和代码中。 当领域模型反映 了与业务最相关的知识时,应用程序的需求成为该模型内部的场景,而UBIQUITOUS LANGUAGE可 直接用MODEL-DRIVEN DESIGN(模型驱动设计)的方式描述此...原创 2019-10-17 22:08:31 · 152 阅读 · 0 评论 -
DDD 领域驱动设计 第3章 绑定模型和实现
3.1 模式: Model-Driven Design严格按照基础模型来编写代码,能够使代码更好地表达设计含义,并且使模型与实际的系统 相契合。 如果整个程序设计或者其核心部分没有与领域模型相对应,那么这个模型就是没有价值的, 软件的正确性也值得怀疑。同时,模型和设计功能之间过于复杂的对应关系也是难于理解的,在 实际项目中,当设计改变时也无法维护这种关系。若分析与和设计之间产生严...原创 2019-10-19 15:00:26 · 206 阅读 · 1 评论 -
DDD 领域驱动设计 实践01
领域驱动设计(DDD)在美团点评业务系统的实践 用DDD则可以很好地解决领域模型到设计模型的同步、演化,最后再将反映了领域的设计模型转为实际的代码。注:模型是我们解决实际问题所抽象出来的概念模型,领域模型则表达与业务相关的事实;设计模型则描述了所要构建的系统。贫血症和失忆症贫血领域对象贫血领域对象(Anemic Domain Object)是指仅用作数据载体,而...原创 2019-10-19 15:31:31 · 371 阅读 · 0 评论