关于这些建模对象的概念和若何应用我就不多展开了,我博客里也有很多这方面的介绍。下面我再讲一下我认为比较重要的器械,比如到底该若何范畴建模?步调应当是怎么样的?
范畴建模的办法
经由过程膳绫擎我介绍的细化阁下的内容,如今再来谈该若何范畴建模,我认为就便利很多了。我的重要办法是:
- 划分好界线高低文,平日每个阁下(sub domain)对应一个界线高低文(bounded context),同一个界线高低文中的概念是明白的,没有任何歧义;
- 在每个界线高低文中设计范畴模型,具体的范畴模型设计办法有很多种,如以场景为出发点的四色原型分析法,或者我早期写的┞封篇文┞仿;这个步调最核心的就是找出聚合根,并找出每个聚合根包含的信息;关于若何设计聚合,可以看一下我写的┞封篇文┞仿;
- 画出范畴模型图,圈出每个模型中的聚合界线;
- 设计范畴模型时,要推敲该范畴模型是否知足营业规矩,同时还要综合推敲技巧实现等问题,比如并发问题;范畴模型不是概念模型,概念模型不存眷技巧实现,范畴模型关怀;所以范畴模型才能直接指导编码实现;
- 思虑范畴模型是如安安营业场景中发患咀用的,以及是若何介入到营业流程的每个环节的;
- 场景走查,确认范畴模型是否能知足范畴中的营业场景和营业流程;
- 模型持续重构、完美、精华精辟;
范畴模型的核心感化:
- 抽象了范畴内的核心概念,并建立概念之间的关系;
- 范畴模型承担了范畴内的状况的保护;
- 范畴模型保护了范畴内的数据之间的营业规矩,数据一致性;
下图是我比来做个一个通俗电商体系的商品中间的范畴模型图,给大年夜家参考:
膳绫擎我们明白了,范畴建模的基本是要先懂得范畴,让本身成为范畴专家。如不雅做到了这点,我们就打好了坚实的基本了。然则,有时一个范畴往往太复杂,涉及到的范畴概念、营业规矩、交互流程太多,导致我们没办法直接针对这个大年夜的范畴进行范畴建模。所以,我们须要将范畴进行拆分,本质上就是把大年夜问题拆分为小问题,然后各个击破的思路。然后既然把一个大年夜的范畴划分为了多个小的范畴(阁下),那最症桨?酵是要理清每个阁下的界线;然后要搞清跋扈哪些阁下是核心阁下,哪些长短核心阁下,哪些是公共支撑阁下;然后,还要思虑阁下之间的接洽是什么。那么,我们该若何划分阁下呢?我的小我看法是大年夜营业相干性的角度去思虑,也就是我们日常平凡说的按营业功能为出发点进行划分。照样拿经典的电商体系来分析,平日一个电商体系都邑包含好几个大年夜块,比如:
- 会员中间:负责用户账号登录、用户信息的治理;
- 商品中间:负责商品的┞饭示、导航、保护;
- 订单中间:负责订单的生成和生命周期治理;
- 交易中间:负责交易相干的营业;
- 库存中间:负责保护商品的库存;
- 促销中间:负责各类促销晃荡的支撑;

范畴模型设计只是软件设计中的一小部分
须要特别留意的是,范畴模型设计只是全部软件设计中的很小一部分。除了范畴模型设计之外,要落地一个体系,我们还有异常多的其他设计要做,比如:
- 容量筹划
- 架构设计
- 数据库设计
- 缓存设计
- 框架选型
- 宣布筹划
- 数据迁徙、同步筹划
- 分库分表筹划
- 回滚筹划
- 高并发解决筹划
- 一致性选型
- 机能压测筹划
- 监控报警筹划
等等。膳绫擎这些都须要我们日常平凡的大年夜量进修和积聚。作为一个合格的开辟人员或架构师,我认为除了要会DDD范畴驱动设计,还要会膳绫擎这么多的技巧才能,确切是异常不轻易的。所以,切切不要认为会DDD了就认为本身很牛逼,实际上你会的只是软件设计中的冰山一角罢了。
总结
本文的重点是基于我小我对DDD的一些懂得,欲望能整顿出一些本身总结出来的一些感悟和经验,并分享给大年夜家。我信赖很多人已经看过太多DDD书上的器械,我老是感到书上的器械看似都太”正规“,很多时刻我们读了之后很难消化,就算懂得了书里的内容,当我们想要应用到实践中时,老是感到无大年夜下手。本文欲望经由过程通俗易懂的文字,介绍了一部分我对DDD的进修感悟和实践心得,欲望能给大年夜家一些启发和赞助。
【编辑推荐】
- 挨踢部落故事汇(5):扩大新IT范畴,用代码改变世界
- 天然说话处理范畴的核心:序列进修
- 专访DeepMap COO罗维:主动驾驶时代,创虻公司如安在高精度地图范畴突围?
- DDD CQRS架构和传统架构的优缺点比较
- 在微办事中应用范畴事宜
推荐阅读
【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! 1. 引言比来一段时光,体系新版本要宣布,在beta客户测试时代,裸露了很多问题,除了一些营业和异常问题外>>>详细阅读
本文标题:浅谈我对DDD领域驱动设计的理解
地址:http://www.17bianji.com/lsqh/36227.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示