DDD案例说明

1、案例说明

整个专栏的案例来源于一个虚构的公司,公司里有一个虚构的团队,他们真实的业务章程,并且有一个真实的软件系统需要部署开发部署,而他们所面临的DDD挑战和问题也是真实存在的。

这个公司叫做SaaSOvation。正如名字所示,该公司旨在开发一系列SaaS产品,该产品作为一种服务被用户使用。公司计划先后开发两套产品。

1、旗舰产品名为CollabOvation,这是一套企业协作(Collaboration)软件,并且加入社交网络的功能。该产品的功能包括论坛、共享日历、博客、即时消息、wiki、留言板、文档管理、通知和提醒、活动跟踪和RSS等。所以协作工具都旨在满足企业服务的需求,帮助他们在项目中提高效率。

2、第二套产品名为ProjeOvation,这是该公司的团队关注的核心域,ProjectOvation主要用于敏捷项目的管理,使用Scrum作为项目的管理方式,并且采用增量式的管理框架。该产品采用传统的Scrum项目管理模型,包括产品(product)、产品负责人(product owner)、团队(team)、待定项(backlog item)、计划发布(planned release)和冲刺(sprint)。对待定项的评估通过对业务价值的分析来确定。

collabOvation和project并不是两套互不相关的产品。SaaSOvation公司非常注意敏捷软件开发过程中的团队协作。因此,CollabOvation可以作为ProjectOvation的增值服务。毫无疑问,在项目计划和团队讨论中使用协作工具将是一个不错的选择。这将在很大程度上增加CollabOvation的销量。

首先启动的项目是collabOvation。该团队中有为数不多的几个老兵,但大量的是这些中级开发人员。在项目组的早期会议中,他们决定采用DDD。其中一个高级开发者在上家公司使用过非常有限的DDD。他并没有全面地使用DDD,他使用的其实就是DDD-lite。

DDD-lite是DDD战术模式的一个子集,它并不强调对通用语言的使用。此外,DDD-lite通常也忽略了限界上下文和上下文映射图、更多的,DDD-lite是关于技术实现层面的,虽然这也是有好处的,但是这种好处并没有与DDD战略模式一同使用时那么大。SaaSOvation决定采用DDD-lite,然而不久之后就遇到了问题,因为他们并不了解子域和限界上下文。

更糟糕的是,SaaSOvation虽然避开了DDD-Lite的陷阱,但这属于侥幸。因为他们的两套核心产品自然地行程各自的限界上下文。这也使得CollabOvation模型和ProjectOvation模型得到正式的分离,但是这是偶然的,并不意味着团队就是了解限界上下文的。

2、示例上下文

我们的SaaSOvation团队所选择的3个限界上下文最终将与各自所对应的子域形成一对一的关系。在汲取经验教训之后,最终的结果如下:
在这里插入图片描述

接下来将介绍这3个模型如何形成一个实际的、现代的企业级解决方案,在实际应用中,一个项目总会有多个限界上下文,他们之间的集成对于当今的企业来说是一个非常重要的环节。除了限界上下文和子域,我们还需要掌握上下文映射图来解决集成问题。

让我们来看看示例DDD项目中的这3个限界上下文,分别是协作上下文、身份与访问上下文和敏捷项目上下文。

3、协作上下文

在当今这个经济疾步向前的时代中,业务协作工具对于创建一个协作式的工作环境来说是非常重要的。SaaSOvation也希望从这个市场中分到一杯羹。

负责设计和实现协作上下文的核心团队需要在第一次软件发布中包括以下功能:论坛、共享日历、博客、即时消息、wiki、留言板、文档管理、通知与提醒、活动跟踪和RSS订阅。虽然核心团队要开发的功能很多,但是每一个协作工具都可以单独使用。但这些工具都属于同一个限界上下文,因为它们都是协作的一部分。
本文主要选择性地讲解部分协作工具的领域模型,即论坛和共享日历,如下图:
在这里插入图片描述

4、身份与访问上下文

现在多数企业级应用程序都需要某种形式的安全和权限组件,这样的组件用以对用户进行认证和授权。正如我们在前面所分析的,一种幼稚的做法就是将这样的组件嵌入到每一个离散的系统中,这将导致每一个系统都产生交筒仓效应(silo effect)。

一个系统的用户并不能轻易地和其他系统的用户发生关联,即便是同一个人使用不同的系统也是如此。为了避免“谷仓”中的粮食溢出到整个业务范围内,架构师需要对安全和权限的管理进行集中化处理。

这构成了一个新的限界上下文——身份和访问上下文。通过标准的DDD集成技术,该上下文可以被其他限界上下文所使用。对于消费份来说,身份与访问上下文是一个通用子域,该产品被命名未IdOvation。

在这里插入图片描述

如上图,身份与访问上下文向多租户订阅方提供支持。每一个租户极其拥有的每一个对象资产都有唯一的身份标识,这在逻辑上将不同的租户分离开来。通过基于角色的权限机制来管理对系统资源的获取,这种方式是简单的、优雅的,同时又是功能强大的。

更进一步,当有我们关心的状态由于模型的行为而发生改变时,系统将发布领域事件。这些领域事件通常采用“名词+动词”的形式来命名,动词应该是英文中的过去分词形式,如UserPasswordChanged、tenantProvisioned。

5、敏捷项目管理上下文

敏捷开发提倡一些轻量级方法使其迅速地流行起来。SaaSOvation决定在开发CollabOvation之后再开发一套敏捷项目管理系统。

在过去三个季度中,CollabOvation系统取得了可观的销售业绩,此时公司启动了ProjectOvation项目。这是一个新的核心域,CollabOvation团队中的顶尖人员被调到ProjectOvation项目中以传授DDD经验。

ProjectOvation产品关注于敏捷项目的管理,使用Scrum作为迭代和增量式的项目管理框架。ProjectOvation遵循传统的Scrum项目管理模型,其中包括产品、产品负责人、团队、待定项、计划发布和冲刺等。对待定项的评估通过对业务价值来确定。

CollabOvation和ProjectOvation并不会朝着两个完全不同的方向发展下去。SaaSOvation公司非常看好敏捷软件开发项目中引入协作工具的前景。因此,CollabOvation的功能作为附加服务加到ProjectOvation中,此时CollabOvation便是ProjectOvation的支撑子域。

在这里插入图片描述
如上图,在采用战略设计之后,ProjectOvation团队认为软件的消费方应该是产品负责人和产品团队。毕竟,这些才是Scrum参与者所扮演的项目角色。用户和角色在另外的身份与访问上下文中进行管理。通过使用该上下文,订阅者通过自助式的服务来管理他们自己的身份和访问信息。软件的管理使得项目管理者,比如产品负责人确定项目的团队成员。在角色管理适当的情况下,产品负责人和团队成员都可以在敏捷项目管理上下文中创建。

基于SaaSOvation开发团队所获得的经验,ProjectOvation的核心域已经开始开发了,该核心域包含产品、产品负责人、团队、待定项、计划发布和冲刺等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/60243.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day15】—— Spring框架1

大家好,我是陈哈哈,北漂五年。认识我的朋友们知道,我是非科班出身,半路出家,大学也很差!这种背景来北漂,你都不知道你会经历什么🙃🙃。   不敢苟同,相信大家…

update多表联合更新

t_student表和t_class表 Mysql UPDATE db_shop.t_student s,db_shop.t_class c SET s.class_namec.name,c.stu_names.name WHERE s.class_idc.id --等效于 UPDATE db_shop.t_student s JOIN db_shop.t_class c SET s.class_namec.name,c.stu_names.name WHERE s.class_…

oracle update 多表关联更新

oracle 多表 关联 更新 先看例子 select t.*, t.rowid from T1 t;select t.*, t.rowid from T2 t;错误示范: update t1 set t1.money (select t2.money from t2 where t2.name t1.name);结果: 因更新条件不够,可以看到name不相等的mone…

linux普通账户变为管理员,你就可以将普通账户升级为管理员账户了

当每台电脑装上系统后,都会有一个Administrator管理员账户,它是Windows默认的最高权限用户,它有权力对系统进行任何等级设置或删除应用,而一般的帐户就只有对这个系统的使用权,没有管理权。那么,我们可以将…

Power Automate Forms 提交表单 到 Teams 群组中的Excel行

新建一个Forms表单 Teams 研究群组 中新建一个 个人信息.xlsx 注意:一定要是xlsx格式 个人信息.xlsx 中 设置表格 在Power Automate 中 找一个 Forms 开始的模板 删除原来SharePoint 的部分 添加Excel Online 选择 在表中插入新行 建立 Forms 和Excel 表格的 对应…

社区电商平台除了小红书,这个运营社群的平台你肯定没用过!

有的阿,比如有赞、粉丝圈、云之家等等......,现在的微信生态圈在不断的完善,不仅仅是社交内容层面上的不断优化,社群平台更多的是打开了服务自己店铺的用户端口,不断在这个空间内扩大自己的用户池。 就来说说粉丝圈吧…

小红书店铺的所有商品API接口(整店商品详情查询接口)

小红书店铺的所有商品API接口(整店商品详情查询接口)代码对接如下: 1.公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中,点击获取请求key和secret )secretString是调用密钥api_nam…

如何打造爆款单品?小红书品牌营销全链路解决方案来了

导语 爆款单品已经成为小红书品牌增长的捷径。爆款单品能让新锐品牌实现从0到1的增长,那么能让网红品牌从1到10吗? 《小红书品牌营销全链路解决方案》专栏第二部分:网红单品打造。与大家一起探讨如何打造爆款单品以及延长它的生命周期。 01…

2021年小红书电商直播趋势报告-小红书数据分析报告

千瓜数据独家推出《2021年小红书电商直播趋势报告》,基于2020年春节期间小红书直播数据,通过直播大盘数据概览、品牌自运营探究、直播观众画像、直播达人洞察等方面,分析小红书直播数据,前瞻2021年小红书电商直播趋势和解决方案。…

直播电商,小红书的商业化“解药”?

配图来自Canva可画 随着互联网流量增长日趋放缓、广告业务逐渐疲软,商业化焦虑就成为了当下整个互联网行业需要共同面对的难题。在此背景下,目前最火热的赛道——互联网直播带货就成为了不少平台和公司寻找新增量的重要方向,以及寻求商业化破…

小红书电商入驻全流程指南

小红书电商入驻全流程指南#小红书 五类店铺入驻要求可售卖类目你知道吗?#运营#干货 你知道小红书的 5 类店铺的入驻要求以及可售卖类目吗?hello,大家好,我是专注搞流量的百收编辑狂潮老师。小红书目前支持的五大类型的店铺分别是…

小红书自研小程序:电商体验与效果优化的运行时体系设计

小程序在其诞生后的几年内,凭借其简单、轻量、流畅、无需安装等特点,引来了爆发式的增长。伴随小红书电商业务的发展,我们洞察到越来越多的商家和品牌大客户有自己定制化需求场景,传统的电商和薯店存在下面三大问题: 为…

facebook怎么运营?

很多做跨境的小伙伴都是通过facebook进行聊天交友,通过facebook平台去做营销引流获客。大家在做facebook营销的时候难免会遇到一些问题,尤其是账号封禁申诉、facebook运营等等一系列内容,下面跨境王营销助手就为大家详细讲解下,希…

以前管Facebook叫“脸书” 现在管Meta叫什么呢

一 硅谷今天的大新闻是Facebook宣布改名了,改叫Meta。 段子挺多,比如国内有媒体宣布,Facebook不要脸了。 还有这张很有趣的图: 不过这张包浆严重的图有个小毛病,按照前后逻辑要一致,google不是google&am…

【WhatsApp营销】如何在Facebook和Instagram上创建Click-to-WhatsApp广告

关键词:WhatsApp营销,Click-to-WhatsApp广告 通过 WhatsApp 中简单快速的客户沟通,公司和客户可以建立直接且有价值的关系。但是,由于WhatsApp不允许企业与用户直接发起会话,要想鼓励客户在WhatsApp上与商家联系&…

双色球系统开发

import java.util.Random; import java.util.Scanner;public class Test8 {public static void main(String[] args) {//双色球系统开发//投注号码由6个红色球号码和1个蓝色球号码组成//红色球号码从1-33中选择,要求选择红球不能重复//蓝色球号码从1-16中选择//共7个…

每日新闻 | 科大讯飞董事长刘庆峰:我国中学生六成作业是重复的

点击蓝字 关注我们 更多精彩,请点击上方蓝字关注我们! 每日新闻播报 第08-02期 1 趋势洞察 科大讯飞董事长刘庆峰:我国中学生六成作业是重复的 在由北京师范大学与科大讯飞联合主办的人工智能与教育大数据峰会上科大讯飞董事长刘庆峰表示&…

科大讯飞董事长刘庆峰:人工智能窗口期有多远?【软件网每日新闻播报│第10-19期】

每一个企业级的人 都置顶了 中国软件网 中国软件网 为你带来最新鲜的行业干货 小编点评 小编: 今儿个 Garner划了4000亿刀的云计算赛道 别跑偏!别掉队! 大家撒丫子跑吧 趋势洞察 科大讯飞董事长刘庆峰:人工智能产业进入窗口期 …

补贴下的科大讯飞:盈利水平堪忧、股东接连减持,刘庆峰没信心?

成立超20年,科大讯飞仍严重依赖补贴,且股东也在接连减持。 10月26日,科大讯飞发布2020年第三季度财报。财报显示,2020年1-9月,科大讯飞营收实现72.84亿元,同比增长10.82%;归属于上市公司股东的…

产业、生态、渠道,三个关键词解码2020年科大讯飞开发者节刘庆峰发言

10月23日,以“AI焕新更美好”为主题的2020年科大讯飞全球1024开发者节在安徽广播电视台亚洲一号演播厅举行。发布会上,科大讯飞董事 长刘庆峰向与会者分享了自己对产业的洞察,并对科大讯飞接下来的发展做了阐述。 01 刘庆峰谈2020人工智能产…