随着近几年的微服务的兴起,随着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领域驱动(一)——之引入相关推荐

  1. DDD领域驱动设计 — 贫血模型与充血模型

    文章转载来源:https://juejin.cn/post/6917125801460629518 | 前言  要想深入掌握和了解 DDD 领域驱动设计的核心,那无论如何也绕不开两大较为抽象的概念-- ...

  2. DDD 领域驱动设计:贫血模型、充血模型的深入解读!

    作者:JavaEdge在掘金 链接:https://juejin.cn/post/6917125801460629518 -     前言     - 要想深入掌握和了解 DDD 领域驱动设计的核心, ...

  3. 浅谈我对DDD领域驱动设计的理解

    从遇到问题开始 当人们要做一个软件系统时,一般总是因为遇到了什么问题,然后希望通过一个软件系统来解决. 比如,我是一家企业,然后我觉得我现在线下销售自己的产品还不够,我希望能够在线上也能销售自己的产品 ...

  4. DDD 领域驱动设计:贫血模型、充血模型的深入解读

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 -     前言 ...

  5. 架构设计之路 - DDD领域驱动模型设计 - 补充中20220315

    文章目录 前言 一.架构的演变历程 二.领域驱动初窥 1 传统软件开发中的痛点 2 什么是领域驱动设计 战略设计 战术设计 总结 3 领域模型 4 分层架构模型 三层架构 四层架构 六边形架构 三.架 ...

  6. (一)初识DDD(领域驱动设计)

    初识DDD(领域驱动设计) 前言 01 基础概念 什么是DDD 02 DP(Domain Primitive) 案例一(用户登录) DP的引出 03 计划 前言 今天开始,更新领域驱动设计系统架构落地 ...

  7. DDD领域驱动设计深度解析

    目录 DDD领域驱动设计深度解析 DDD凝聚了软件工程的智慧 DDD领域驱动设计的历史 什么是领域 Domain 领域驱动设计 领域驱动设计几大原则详解 领域驱动模型的概念 领域驱动设计的挑战 DDD ...

  8. DDD领域驱动(二)——之需求梳理

    上一篇<DDD领域驱动(一)--之引入>中,我们阐述了中台.微服务.DDD,并从面向对象的基础出发,软件工程的基础出发,简单介绍了DDD,把DDD的知识列了一个框架.让我们对DDD所处于的 ...

  9. DDD - 一文读懂DDD领域驱动设计

    一文读懂DDD领域驱动设计 1. 领域驱动设计简介 1.1 什么是领域驱动设计 1.2 为什么要用领域驱动设计 优点 缺点 2.3 领域驱动设计过程 2. 对于DDD,我们需要学习什么? 2.1 DD ...

最新文章

  1. JVM的垃圾回收机制详解和调优
  2. 面向对象,面向过程编程
  3. python爬虫有几种方法_基于Python爬虫的几种方法,python
  4. 两种方法动态获得ABAP类的class attribute的值
  5. 计算机会计课程试题及答案,会计电算化课后简答题及答案.doc
  6. Cracked me --1--Acid_burn
  7. 数据统计告诉你,程序员是不是35岁就退休
  8. SpringMVC自学日志01(回顾servlet)
  9. eosio.cdt心得
  10. 跨境电商独立站门槛高,为什么还有无数人挤破头想入坑!
  11. linux命令学习——tar
  12. 水晶报表中对某一栏位值进行处理_从主流报表工具的报价看报表行业的报价水深-----常用报表工具对比---主流报表价格对比...
  13. 先锋网络电视 v3.36.4 钻石版 怎么用
  14. 机器视觉:光源基础及选型
  15. 王巧乐菇凉的360图书馆--记录大量web日志分析的内容,非常好
  16. Django学习 day79之drf第三日
  17. 《黑匣子思维:我们如何更理性地犯错》iphone部分
  18. 前端笔记(03)——一文看懂flex布局
  19. 交联型金属卟啉基聚酰亚胺PPBPI-H)PPBP-Mn;PBP-Fe;PPBPI-Fe-CR;PPBPI-Mn-CR产品-齐岳供应
  20. 教你怎么学习Java

热门文章

  1. java如何写电梯代码_JAVA编写的一个简易的电梯模型,完成电梯如何满足乘客上下楼需求(ElevatorTest)...
  2. OpenGL环境搭建:Win7 VS2013X64 +freeglut2.8.1+glew1.7.0+gltools
  3. 刘未鹏之思维改变生活!
  4. go pdf支持中文
  5. AE基础教程(21)——第21章 层的属性简介
  6. 关于xcode5 下调试 ios7 系统 界面上移20像素 解决
  7. xbee模块和单片机_美国DIGI公司的XBee模块无线通讯实验
  8. 2019年科技发展预测:云、大数据、AI、物联网和区块链
  9. 使用AndroidStudio与RN 运行ract-native run-android遇到的那些坑
  10. USB接口以太网芯片SR9900