领域驱动设计资料收集与简单实现(一):什么是领域驱动设计,通用语言

什么是领域驱动设计

领域驱动设计(DDD):DDD的全称为Domain-driven Design,是一套综合软件系统分析和设计的面向对象建模方法,是针对复杂系统设计的一套软件工程方法,是一种思想。
什么是领域:领域是问题域 + 业务期望
一:问题域:领域中有许多的问题域,领域是有边界的,要注重核心要解决的问题,问题域建模的过程就是业务领域分析的过程
二:业务期望:确定业务的期望与愿景,业务的范围,识别出业务需求的价值,识别出最核心的业务
什么是驱动:
一:领域驱动领域模型设计,需求分析 =>领域模型 ,领域模型驱动代码实现,领域模型 =>代码实现 ,分析领域中的核心问题(核心关注点),然后设计对应的领域模型,再通过领域模型驱动代码实现。
什么是设计:
一:DDD中的设计主要指领域模型的设计,DDD是一种基于模型驱动开发的软件开发思想,强调领域模型是整个系统的核心,领域模型也是整个系统的核心价值所在

为什么要使用领域驱动设计

一:不同于传统以数据表为中心的建模方式,它以业务领域为中心来建模,迭代过程中,不断重构完善设计,更好的面对业务的挑战与变化
二:领域驱动设计是一套完整而系统的设计方法,它能带给你从战略设计到战术设计的规范过程,使得你的设计思路能够更加清晰,设计过程更加规范
三:是一种基于模型驱动的软件设计方式。它以领域为核心,分析领域中的问题,通过建立一个领域模型来有效的解决领域中的核心的复杂问题,模型反映业务,识别业务的边界,价值,控制业务的复杂度,业务越复杂的场景使用DDD,价值越大
四:对提高软件的可维护性,业务可理解性以及可重用性方面都有很好的帮助,可以提高团队成员的面向对象设计能力与架构设计能力,提高沟通协作能力
五:领域模型贯穿软件分析、设计,以及开发的整个过程;领域专家、设计人员、开发人员通过领域模型进行交流,彼此共享知识与信息,防止需求走样
六:领域模型是整个软件的核心,是软件中最有价值和最具竞争力的部分,设计足够精良且符合业务需求的领域模型能够更快速的响应需求变化
七:一种开发思想的转变,让开发人员不止关注技术领域,还要关注业务领域,团队协作沟通

通用语言

在开发的过程中领域专家、设计人员、开发人员需要一起交流沟通,来了解业务分析需求,建立领域模型,由于我们每个人掌握的领域知识不一样,思考的方式不一样,每个人都有自己的看法,不建立通用的语言,很难沟通,达成共识,会造成像盲人摸象一样,加大沟通的成本,业务也会有偏差,建立通用语言,基于通用语言交流沟通,让团队人员达成共识,提升沟通的效率

一:发现领域内的概念,术语,形成术语表,给出英文术语,专有概念(专门为软件开发而提炼出的概念)基于统一语言进行交流,沟通
二:领域驱动设计的一个核心的原则是使用一种基于模型的语言,通用语言反应业务的概念与行为
三:基于统一语言沟通交流,必须保证术语概念的一致性,及时更新维护,达成共识,减少沟通的成本
四:领域行为是对业务过程的描述,基于领域术语描述业务场景用例,它体现了更加完整的业务需求以及复杂的业务规则
五:在同一个限界上下文中必须保证统一语言的唯一性
六:获得统一语言就是需求分析的过程,也是团队中各个角色就系统目标、范围与具体功能达成一致的过程
七:实现代码时,项目的类名,方法名,仓储,界限上下文,接口等,都应该使用通用语言的英文术语来命名

资料的来源

想要从头开始学习DDD,DDD中有许多难懂的概念,只看博客,视频,很难理解,至少我觉得有难度,在实际开发中去理解,这样会事半功倍,收集资料,先了解DDD的基础知识,慢慢的学会自己思考,我希望自己能坚持下去。
感谢前辈们的付出,才让我们学习起来更容易一点,谢谢!
汤总netfocus的DDD系列的博客,非常的全面透彻,学习DDD必读: https://www.cnblogs.com/netfocus/category/361987.html
dax.net:https://sunnycoding.cn/
张逸老师:GitChat 领域驱动设计实战书籍
解道JDON:https://www.jdon.com/ddd.html
田园的蟋蟀:https://www.cnblogs.com/xishuai/category/572887.html

(0)

相关推荐

  • 领域驱动设计在马蜂窝优惠中心重构中的实践

    前言 正如领域驱动设计之父 Eric Evans 所著一书的书名所述,领域驱动设计(Domain Driven Design)是一种软件核心复杂性应对之道. 在我们解决现实业务问题时,会面对非常复杂的 ...

  • 领域驱动设计(DDD)在爱奇艺打赏业务的实践

    领域驱动设计(Domain-Driven Design,以下简称DDD)思潮的形成要追述到30几年前,17年前,Eirc Evans定义了领域驱动设计的概念.DDD一直为传统行业的软件工程师提供软件设 ...

  • DDD(领域驱动设计)与微服务的关系

    DDD是一种架构设计方法,微服务是一种架构风格,从本质上讲都是为了追求更高的响应力,都强调从业务出发. DDD主要关注:从业务领域视角划分领域边界,构建通用语言进行高效沟通,通过业务抽象,建立领域模型 ...

  • 3天我把DDD业务领域建模、数据库、聚合彻底撸干净了!

    听说,很多采用了微服务架构也不能的解决问题,都去用 DDD(领域驱动设计) 的思想去指导微服务的实践了. 最近我在和一些开发人员.技术大佬交流,大家有一个普遍的感受: DDD作为一套架构方法,近几年在 ...

  • DDD领域驱动设计真就一文不值?

    在互联网快速发展的这几年来,微服务.领域驱动设计等已经非常流行,并成为目前软件开发行业的主流趋势. 大家都知道,微服务划分的一个重要理论基础就是领域驱动设计.但由于 DDD 门槛高.概念多,体系庞大又 ...

  • DDD 领域驱动设计简单介绍

    不同于其它的架构方法,领域驱动设计DDD(Domain Driven Design)提出了从业务设计到代码实现一致性的要求,不再对分析模型和实现模型进行区分.也就是说从代码的结构中我们可以直接理解业务 ...

  • 远卓:数字化转型的精益化思考

    内容摘要:以数字化驱动的业务转型战略为中心,制定组件化业务能力规划,以此建立敏捷/轻量的业务架构:在业务架构内将业务组件映射为子域,在子域内通过DDD设计应用架构,同时进一步修正业务架构. 建设数字中 ...

  • 划重点!如何做好质性研究设计、资料收集分析、论文写作发表?

    如何做高质量的质性研究?对于一个完整研究而言,选题.研究设计.资料收集.资料分析.论文写作--每一个部分都有着极为平衡又苛刻的要求. 不少专家在描述资料收集重要性时经常说"rubbish i ...

  • 电子设计科普:一个简单蜂鸣器驱动电路引发的讨论

    之前有一个粉丝,在大学期间做课程设计.毕业找工作还有面试时,我都对其帮助过.之后成功入职深圳一家做仪表的技术公司担任硬件工程师职位.上个月的时候接手了自己的第一个项目,由于是第一次真正做产品,害怕出错 ...

  • 22种人体结石(网络资料收集)

    一.眼结膜结石: 是由眼结膜脱落的上皮细胞.血管中渗出的白细胞和眼泪中少量的钙盐聚合而形成的一种固体结构,呈浅黄色,质地较硬.平时眼睛不红不肿,但总觉有东西磨擦眼睛,有时疼痛.还有一种"眼睑 ...

  • 配对设计资料如何统计分析? | 30天学会医学统计与SPSS公益课(D5)

    实验性研究常见包括完全随机设计和配对(配伍)设计两种实现均衡可比的设计方法. 之前的课程介绍的t检验.秩和检验都是基于完全随机设计资料开展的统计分析,本日介绍配对设计的数据分析. 配对设计 配对设计是 ...

  • 新版信号灯规则,简单一句话就能总结,这设计的目的是什么呢

    已经越来越多的城市施行新版国标红绿灯,如果你还不知道该怎么走!闯红灯就是6分200元,新版红绿灯取消了读秒,直行为圆饼灯,左右转弯为箭头灯,左右转弯指示灯不亮,并不是信号灯坏了,只是信号灯的一种组合方 ...

  • 郁达夫研究学会《浅论郁达夫先生的教育思想》主题沙龙及郁达夫学术资料收集小组第五次会议在东洲中小隆重举行!

    郁达夫研究学会2019年活动之一 3月29日下午3:00,"论郁达夫先生的教育思想"主题沙龙在东洲中小举行.这是郁达夫研究学会2019年度第一次研究学术沙龙,主题为"论郁 ...

  • 土星在第七宫资料收集

    X 土星所代表的压力来源,同时也是代表着自己所惧怕的对象来源.因此,当土星落入第七宫的时候,对于配偶多少总是有点惧怕,但是如果土星刑克太多的话,则可能会转而变成是对于配偶的过度要求,而且配偶可能会是年 ...

  • 产品结构设计·结构防ESD的设计资料

    一加一学院专业从事工业产品结构设计培训的在线教育机构,现开设有:Creo软件基础建模.工程图.钣金.仿真.产品曲面造型.结构设计等相关实战课程,实战课程体系,精准定向提升. 点击即刻参与免费课堂学习 ...

  • 关于冥想及正念的资料收集和总结

    2020-03-28 本周继续居家办公,时间安排也颇为自由,于是开始施行柳比耶夫的事件记录法,观察一下自己的时间消耗,大概操作是将每日时间消耗都进行记录和统计,第一天表现颇为不错,学习时间竟然达到了7 ...