DDD领域驱动(一)——之引入
随着近几年的微服务的兴起,随着15年阿里中台的提出,其火热程度大家都可以看到。无论公司大小大家都在做中台,都在搭建微服务。但是怎么能够做一个好的中台,怎么能够拆分一个大小合理的微服务呢?
好,我们先看一下面向对象的基础(具体含义这里不展开):
三大基本特征:封装、继承、多态;
六大原则:单一职责原则(SingleResponsibility Principle,简称SRP)、开放—封闭原则(OCP,OpenClosed Principle)、依赖倒转原则(DIP,DependenceInversion Principle)、里氏代换原则(LiskovSubstitution Principle, LSP)、迪米特法则(LawofDemeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP)、合成聚合复用原则(CompositionAggregationReuse Principle ,CARP)。
思考一下我们的目标是什么?答案:设计编写出【高内聚、低耦合】的程序,达到【可扩展、可复用、灵活性强】的目标,从而能够更高效的应对业务需求的变化。(更多的从编写程序的角度进行思考的)
中台,当今互联网时代,用户是商业战场的中心,快速响应用户的需求,快速进行产品的创新、迭代、重组等,“快”字成了当今互联网的关键字,而中台,就是抽象、沉淀企业的一些通用、核心服务能力,达到能够快速支撑前台,快速响应用户需求的能力。(更多站在企业的角度进行思考)
类比一下,中台中的一个服务能力(被多个业务线复用),和程序中的一个类(被多个功能方法复用)。其实细细思考有很多相通、相似的地方。(再思考类比一下我们的现实生活:胳膊、人、单位、地区、国家……,都是高内聚,聚合起来干大事)但是编写程序,有一套原则,一套方式方法论。而如果变成企业级的,从大的角度来思考做事的话,就需要另一套方式方法论。但是记住一点:目标本质还是一样。善于抽象挖掘事务的核心本质,很多东西非常容易理解的。
好,如何在企业中搭建开发一套中台式的系统呢?面对复杂庞大的业务,如何化繁为简,化大为小,让同事更加的容易的参与进行做贡献呢?答案:微服务。微服务的本质就是将原来一个复杂的大系统,大业务,通过合理的划分,形成高内聚的一个个小系统。从而更加容易的沉淀企业业务中的各种能力。所以微服务是实现中台的一种方案。好,如何进行微服务的设计呢?如何进行微服务的划分呢?如何进行服务的实现呢?DDD(领域驱动设计)来了,就是指导我们进行微服务落地的思想。终于引入了DDD,这里我说一下我对三者的理解吧:中台企业级业务能力复用的一种形式,而微服务是落地中台的一种比较合理的技术方案,而DDD则是指导我们如何落地微服务的一种指导思想。
再说DDD以前,大家可以看一下软件工程的一些知识《系统开发与软件工程》。其实我们的软件工程中的几个生命周期:需求分析、架构设计、详细设计编码实现、软件测试、上线后升级维护。而项目管理贯穿各个节点。而DDD也离不开这些东西,看下我从大的方面概况了解一下DDD。
DDD(Domain-Driven Design)领域驱动设计,领域,百科解释指一种特定的范围或区域。微服务的划分其实就是划分区域,而DDD正是在领域的角度,驱动进行软件设计。这篇,我们先从总体看一下DDD的轮廓,看下边这张图:
上图右边是DDD领域驱动设计过程,涉及的点,通过领域、需求、业务的角度进行设计,拆分,自顶向下,逐层分解。而左边,是DDD领域驱动设计过程,离不开的三大管理:需求、项目、团队。
好,这篇引入DDD,简单介绍一下,后边继续……
DDD领域驱动(一)——之引入相关推荐
- DDD领域驱动设计 — 贫血模型与充血模型
文章转载来源:https://juejin.cn/post/6917125801460629518 | 前言 要想深入掌握和了解 DDD 领域驱动设计的核心,那无论如何也绕不开两大较为抽象的概念-- ...
- DDD 领域驱动设计:贫血模型、充血模型的深入解读!
作者:JavaEdge在掘金 链接:https://juejin.cn/post/6917125801460629518 - 前言 - 要想深入掌握和了解 DDD 领域驱动设计的核心, ...
- 浅谈我对DDD领域驱动设计的理解
从遇到问题开始 当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决. 比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品 ...
- DDD 领域驱动设计:贫血模型、充血模型的深入解读
点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 - 前言 ...
- 架构设计之路 - DDD领域驱动模型设计 - 补充中20220315
文章目录 前言 一.架构的演变历程 二.领域驱动初窥 1 传统软件开发中的痛点 2 什么是领域驱动设计 战略设计 战术设计 总结 3 领域模型 4 分层架构模型 三层架构 四层架构 六边形架构 三.架 ...
- (一)初识DDD(领域驱动设计)
初识DDD(领域驱动设计) 前言 01 基础概念 什么是DDD 02 DP(Domain Primitive) 案例一(用户登录) DP的引出 03 计划 前言 今天开始,更新领域驱动设计系统架构落地 ...
- DDD领域驱动设计深度解析
目录 DDD领域驱动设计深度解析 DDD凝聚了软件工程的智慧 DDD领域驱动设计的历史 什么是领域 Domain 领域驱动设计 领域驱动设计几大原则详解 领域驱动模型的概念 领域驱动设计的挑战 DDD ...
- DDD领域驱动(二)——之需求梳理
上一篇<DDD领域驱动(一)--之引入>中,我们阐述了中台.微服务.DDD,并从面向对象的基础出发,软件工程的基础出发,简单介绍了DDD,把DDD的知识列了一个框架.让我们对DDD所处于的 ...
- DDD - 一文读懂DDD领域驱动设计
一文读懂DDD领域驱动设计 1. 领域驱动设计简介 1.1 什么是领域驱动设计 1.2 为什么要用领域驱动设计 优点 缺点 2.3 领域驱动设计过程 2. 对于DDD,我们需要学习什么? 2.1 DD ...
最新文章
- JVM的垃圾回收机制详解和调优
- 面向对象,面向过程编程
- python爬虫有几种方法_基于Python爬虫的几种方法,python
- 两种方法动态获得ABAP类的class attribute的值
- 计算机会计课程试题及答案,会计电算化课后简答题及答案.doc
- Cracked me --1--Acid_burn
- 数据统计告诉你,程序员是不是35岁就退休
- SpringMVC自学日志01(回顾servlet)
- eosio.cdt心得
- 跨境电商独立站门槛高,为什么还有无数人挤破头想入坑!
- linux命令学习——tar
- 水晶报表中对某一栏位值进行处理_从主流报表工具的报价看报表行业的报价水深-----常用报表工具对比---主流报表价格对比...
- 先锋网络电视 v3.36.4 钻石版 怎么用
- 机器视觉:光源基础及选型
- 王巧乐菇凉的360图书馆--记录大量web日志分析的内容,非常好
- Django学习 day79之drf第三日
- 《黑匣子思维:我们如何更理性地犯错》iphone部分
- 前端笔记(03)——一文看懂flex布局
- 交联型金属卟啉基聚酰亚胺PPBPI-H)PPBP-Mn;PBP-Fe;PPBPI-Fe-CR;PPBPI-Mn-CR产品-齐岳供应
- 教你怎么学习Java
热门文章
- java如何写电梯代码_JAVA编写的一个简易的电梯模型,完成电梯如何满足乘客上下楼需求(ElevatorTest)...
- OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools
- 刘未鹏之思维改变生活!
- go pdf支持中文
- AE基础教程(21)——第21章 层的属性简介
- 关于xcode5 下调试 ios7 系统 界面上移20像素 解决
- xbee模块和单片机_美国DIGI公司的XBee模块无线通讯实验
- 2019年科技发展预测:云、大数据、AI、物联网和区块链
- 使用AndroidStudio与RN 运行ract-native run-android遇到的那些坑
- USB接口以太网芯片SR9900