架构设计可视化
标准化架构设计流程和设计组件。通过托拉拽的方式来进行架构设计,使开发人员能够更直观的理解和管理系统,更容易识别代码间的依赖关系
diff --git a/404.html b/404.html new file mode 100644 index 0000000..ee8a9bc --- /dev/null +++ b/404.html @@ -0,0 +1,23 @@ + + +
+ + +404
But if you don't change your direction, and if you keep looking, you may end up where you are heading.
{var u;const $=a(O),k=(u=t.items.value.length)!=null?u:Number.NaN,w=h===p;!$&&!Ke(c)&&(S.value=w||h===c),!w&&k>2&&t.loop&&(h=l(h,p,k));const I=a(C);y.value=w,$?(b.value=Math.round(Math.abs(h-p))<=1,d.value=v(h,p),m.value=a(y)?1:s):d.value=g(h,p,I),_.value=!0,w&&i.value&&t.setContainerHeight(i.value.offsetHeight)};function L(){if(t&&a(O)){const h=t.items.value.findIndex(({uid:p})=>p===r.uid);t.setActiveItem(h)}}return ae(()=>{t.addItem({props:e,states:yt({hover:o,translate:d,scale:m,active:y,ready:_,inStage:b,animating:S}),uid:r.uid,translateItem:A})}),bt(()=>{t.removeItem(r.uid)}),{carouselItemRef:i,active:y,animating:S,hover:o,inStage:b,isVertical:C,translate:d,isCardType:O,scale:m,ready:_,handleItemClick:L}},hr=W({name:"ElCarouselItem"}),_r=W({...hr,props:mr,setup(e){const n=e,t=ge("carousel"),{carouselItemRef:r,active:s,animating:i,hover:o,inStage:d,isVertical:m,translate:y,isCardType:_,scale:b,ready:S,handleItemClick:O}=gr(n),C=R(()=>{const v=`${`translate${a(m)?"Y":"X"}`}(${a(y)}px)`,g=`scale(${a(b)})`;return{transform:[v,g].join(" ")}});return(l,v)=>Z((P(),j("div",{ref_key:"carouselItemRef",ref:r,class:M([a(t).e("item"),a(t).is("active",a(s)),a(t).is("in-stage",a(d)),a(t).is("hover",a(o)),a(t).is("animating",a(i)),{[a(t).em("item","card")]:a(_),[a(t).em("item","card-vertical")]:a(_)&&a(m)}]),style:ze(a(C)),onClick:v[0]||(v[0]=(...g)=>a(O)&&a(O)(...g))},[a(_)?Z((P(),j("div",{key:0,class:M(a(t).e("mask"))},null,2)),[[ee,!a(s)]]):J("v-if",!0),pe(l.$slots,"default")],6)),[[ee,a(S)]])}});var et=he(_r,[["__file","/home/runner/work/element-plus/element-plus/packages/components/carousel/src/carousel-item.vue"]]);const yr=Ye(pr,{CarouselItem:et}),br=Jn(et),wr="/doc/assets/1.db0ef1c6.jpg",Ir="/doc/assets/2.fe39af32.jpg",Or="/doc/assets/3.1f8b36ed.jpg",Cr="/doc/assets/4.186ab455.jpg";const $r={class:"preview-wrapper"},Tr={class:"preview-img-wrapper"},Sr=["src"],Er={__name:"AppPreview",setup(e){const n=[wr,Ir,Or,Cr];return(t,r)=>(P(),j("div",$r,[F(a(yr),{height:"330px",interval:6e3},{default:D(()=>[(P(),j(De,null,Fe(n,s=>F(a(br),null,{default:D(()=>[V("picture",Tr,[V("img",{src:s},null,8,Sr)])]),_:2},1024)),64))]),_:1})]))}},Nr=wt(Er,[["__scopeId","data-v-4d65d606"]]),Pr={...$e,Layout:()=>fe($e.Layout,null,{"home-hero-after":()=>fe(Nr)}),enhanceApp({router:e}){if(typeof window<"u"){let n;const t=()=>{const r=document.querySelector(".vp-doc");r!=null?n?n.update():n=new Viewer(r,{toolbar:!1,navbar:!1}):n&&(n.destroy(),n=void 0)};H(()=>e.route,()=>{setTimeout(()=>{t()},1e3)},{immediate:!0,deep:!0})}}};function tt(e){if(e.extends){const n=tt(e.extends);return{...n,...e,async enhanceApp(t){n.enhanceApp&&await n.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const U=tt(Pr),Ar=W({name:"VitePressApp",setup(){const{site:e}=kt();return ae(()=>{Lt(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),Rt(),Bt(),Mt(),U.setup&&U.setup(),()=>fe(U.Layout)}});async function jr(){const e=Lr(),n=kr();n.provide(Ot,e);const t=Ct(e.route);return n.provide($t,t),n.component("Content",Tt),n.component("ClientOnly",St),Object.defineProperties(n.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),U.enhanceApp&&await U.enhanceApp({app:n,router:e,siteData:Et}),{app:n,router:e,data:t}}function kr(){return Nt(Ar)}function Lr(){let e=de,n;return Pt(t=>{let r=At(t);return r?(e&&(n=r),(e||n===r)&&(r=r.replace(/\.js$/,".lean.js")),de&&(e=!1),jt(()=>import(r),[])):null},U.NotFound)}de&&jr().then(({app:e,router:n,data:t})=>{n.go().then(()=>{It(n.route,t.site),e.mount("#app")})});export{jr as createApp}; diff --git a/assets/b0a50304.46a140ad.png b/assets/b0a50304.46a140ad.png new file mode 100644 index 0000000..2f00872 Binary files /dev/null and b/assets/b0a50304.46a140ad.png differ diff --git a/assets/b2fa4ad4.57f97127.png b/assets/b2fa4ad4.57f97127.png new file mode 100644 index 0000000..5ac4ffb Binary files /dev/null and b/assets/b2fa4ad4.57f97127.png differ diff --git a/assets/base_change-log.md.2daafce1.js b/assets/base_change-log.md.2daafce1.js new file mode 100644 index 0000000..e8a6732 --- /dev/null +++ b/assets/base_change-log.md.2daafce1.js @@ -0,0 +1 @@ +import{_ as e,o as a,c as t}from"./chunks/framework.a3dd33a8.js";const i=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"base/change-log.md","filePath":"base/change-log.md","lastUpdated":1705031091000}'),o={name:"base/change-log.md"};function s(c,n,r,d,p,l){return a(),t("div")}const g=e(o,[["render",s]]);export{i as __pageData,g as default}; diff --git a/assets/base_change-log.md.2daafce1.lean.js b/assets/base_change-log.md.2daafce1.lean.js new file mode 100644 index 0000000..e8a6732 --- /dev/null +++ b/assets/base_change-log.md.2daafce1.lean.js @@ -0,0 +1 @@ +import{_ as e,o as a,c as t}from"./chunks/framework.a3dd33a8.js";const i=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"base/change-log.md","filePath":"base/change-log.md","lastUpdated":1705031091000}'),o={name:"base/change-log.md"};function s(c,n,r,d,p,l){return a(),t("div")}const g=e(o,[["render",s]]);export{i as __pageData,g as default}; diff --git a/assets/base_install.md.ad3328cb.js b/assets/base_install.md.ad3328cb.js new file mode 100644 index 0000000..049ba7a --- /dev/null +++ b/assets/base_install.md.ad3328cb.js @@ -0,0 +1 @@ +import{_ as a,o as t,c as s,k as e,a as o}from"./chunks/framework.a3dd33a8.js";const O=JSON.parse('{"title":"TODO","description":"","frontmatter":{},"headers":[],"relativePath":"base/install.md","filePath":"base/install.md","lastUpdated":1705031091000}'),n={name:"base/install.md"},r=e("h1",{id:"todo",tabindex:"-1"},[o("TODO "),e("a",{class:"header-anchor",href:"#todo","aria-label":'Permalink to "TODO"'},"")],-1),l=[r];function c(d,i,_,p,h,m){return t(),s("div",null,l)}const b=a(n,[["render",c]]);export{O as __pageData,b as default}; diff --git a/assets/base_install.md.ad3328cb.lean.js b/assets/base_install.md.ad3328cb.lean.js new file mode 100644 index 0000000..049ba7a --- /dev/null +++ b/assets/base_install.md.ad3328cb.lean.js @@ -0,0 +1 @@ +import{_ as a,o as t,c as s,k as e,a as o}from"./chunks/framework.a3dd33a8.js";const O=JSON.parse('{"title":"TODO","description":"","frontmatter":{},"headers":[],"relativePath":"base/install.md","filePath":"base/install.md","lastUpdated":1705031091000}'),n={name:"base/install.md"},r=e("h1",{id:"todo",tabindex:"-1"},[o("TODO "),e("a",{class:"header-anchor",href:"#todo","aria-label":'Permalink to "TODO"'},"")],-1),l=[r];function c(d,i,_,p,h,m){return t(),s("div",null,l)}const b=a(n,[["render",c]]);export{O as __pageData,b as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243.md.b84602a7.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243.md.b84602a7.js" new file mode 100644 index 0000000..347da99 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243.md.b84602a7.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as _}from"./chunks/framework.a3dd33a8.js";const m=JSON.parse('{"title":"DDD可视化开发平台文档","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档.md","filePath":"base/product/DDD可视化开发平台文档.md","lastUpdated":1705031091000}'),D={name:"base/product/DDD可视化开发平台文档.md"},r=_('
DDD可视化开发平台是一款基于领域驱动设计思想的可视化开发工具,支持多种领域模型设计方式, 提供丰富的可视化工具和组件,支持自动生成代码,支持多种编程语言、数据库和开发框架, 可以帮助开发者快速构建高质量的软件系统。
应用场景如下:
组织: 组织可以对应租户、企业的概念,在组织下面可以挂靠多个团队。
团队:每个团队是单一职责的,通常负责独立子领域的开发工作。
业务域:可以理解为 DDD 中 ‘子域’ 的概念。也可以是业务模块,表示特定范围内的业务问题。在我们的开发平台中,一个业务域就是一个领域建模结果。
业务场景:主要表现形式就是一个业务流程图,用于表示特定业务场景下,各个角色的交互行为。
应用:应用可以理解为微服务、限界上下文之类的概念,这是程序运行、脚手架生成、代码同步的基本单位。由多个业务域聚合而成。
本文介绍当您在使用DDD可视化开发平台时遇到的常用名词的基本概念。
名词 | 定义 | 示例 |
---|---|---|
统一语言 | 在领域驱动设计中,统一语言指的是团队成员之间使用的共同语言,它用于描述和交流领域的概念和规则。通过使用统一语言,团队成员可以避免产生误解和混淆。 | 团队中统一使用的词汇,如“订单”、“支付”、“客户”等。 |
业务流程 | 业务流程是指在特定的业务场景下,按照规定的步骤和顺序对业务活动进行处理或操作的过程。 | 用户下单的流程、商品配送的流程等。 |
服务模型 | 服务模型是一种抽象的概念,它表示在某个领域中提供的具体功能和服务。 | 用户认证服务、订单管理服务等。 |
业务域 | 业务域是指在一个特定领域中,具有相似业务功能和规则的相关对象的集合。 | 电商系统中的订单域、用户域、商品域等。 |
领域模型 | 领域模型是一种用于描述领域对象、行为和关系的抽象模型。它通过领域专家的知识和需要来定义,用于解决特定领域中的复杂问题。 | 订单模型、用户模型、商品模型等。 |
数据模型 | 数据模型是根据特定的业务需求和规则,将实际业务数据抽象成逻辑结构的方式。 | 用户数据模型、订单数据模型等。 |
查询模型 | 查询模型是一种用于封装查询请求和查询结果的对象模型。 | 用户查询模型、订单查询模型等。 |
对象映射关系 | 对象映射关系是用于将不同模型对象之间的转换和映射关系的技术,包含领域对象与数据对象、数据对象与查询对象的映射。 | 将数据库中存储的订单数据映射为领域模型对象。 |
应用 | 应用是指实现业务逻辑和业务流程的运行模块。 | 订单管理应用、用户管理应用等。 |
欢迎探索 Visual DDD:AI助力下的领域驱动设计革命
“我们塑造了工具,然后工具再塑造我们。” ——马歇尔·麦克卢汉
在飞速发展的软件时代,你是否感到压力,渴望快速而又质量上乘的开发?Visual DDD,结合了GPT-4等前沿AI技术,为你揭示了一个全新的软件设计宇宙。
想象一下:
这一刻,让我们一起跨入未来:拥抱AI,释放你的创造力,用Visual DDD为你的软件设计注入无限可能!
迈出第一步:
Visual DDD不仅仅是一个工具,它是你走向卓越设计的助推器。每一次反馈,都是我们前进的动力。请随时在我们的 GitHub 上与我们分享你的灵感与建议。
Q&A:
Q: Visual DDD 适用于哪些领域?
A: 无论是零售,地产、金融、医疗还是娱乐,只要你有软件的需求,Visual DDD都能助你一臂之力。
Q: 如何简单地与团队分享我的设计成果?
A: 利用Visual DDD的在线云同步功能,让团队合作变得前所未有的简单高效。
Q: 如何最大化利用AI优化我的设计?
A: 只需向AI描述你的需求,然后看着它为你揭示最佳设计方案。
Q: Visual DDD支持哪些语言?
A: 目前我们全面支持java,而更多的语言版本也即将到来!
想象一下:
这一刻,让我们一起跨入未来:拥抱AI,释放你的创造力,用Visual DDD为你的软件设计注入无限可能!
迈出第一步:
Visual DDD不仅仅是一个工具,它是你走向卓越设计的助推器。每一次反馈,都是我们前进的动力。请随时在我们的 GitHub 上与我们分享你的灵感与建议。
Q&A:
Q: Visual DDD 适用于哪些领域?
A: 无论是零售,地产、金融、医疗还是娱乐,只要你有软件的需求,Visual DDD都能助你一臂之力。
Q: 如何简单地与团队分享我的设计成果?
A: 利用Visual DDD的在线云同步功能,让团队合作变得前所未有的简单高效。
Q: 如何最大化利用AI优化我的设计?
A: 只需向AI描述你的需求,然后看着它为你揭示最佳设计方案。
Q: Visual DDD支持哪些语言?
A: 目前我们全面支持java,而更多的语言版本也即将到来!
欢迎加入我们
',14);function u(g,d,V,A,m,b){return a(),o("div",null,[D,s(" **** "),p,_,s(" 在飞速发展的软件时代,你是否感到压力,渴望快速而又质量上乘的开发?Visual DDD,结合了GPT-4等前沿AI技术,为你揭示了一个全新的软件设计宇宙。 "),c])}const I=l(n,[["render",u]]);export{T as __pageData,I as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\344\272\247\345\223\201\346\246\202\350\277\260_\346\254\242\350\277\216\344\275\277\347\224\250Visual-DDD.md.cdf58917.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\344\272\247\345\223\201\346\246\202\350\277\260_\346\254\242\350\277\216\344\275\277\347\224\250Visual-DDD.md.cdf58917.lean.js" new file mode 100644 index 0000000..9a0e8bf --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\344\272\247\345\223\201\346\246\202\350\277\260_\346\254\242\350\277\216\344\275\277\347\224\250Visual-DDD.md.cdf58917.lean.js" @@ -0,0 +1 @@ +import{_ as l,o as a,c as o,a as s,S as r,k as t}from"./chunks/framework.a3dd33a8.js";const i="/doc/assets/pluginIcon.9681df56.svg",e="/doc/assets/1703833467613.6410c7cb.png",T=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/产品概述/欢迎使用Visual-DDD.md","filePath":"base/product/DDD可视化开发平台文档/产品概述/欢迎使用Visual-DDD.md","lastUpdated":1705031091000}'),n={name:"base/product/DDD可视化开发平台文档/产品概述/欢迎使用Visual-DDD.md"},D=r("",3),p=t("blockquote",null,[t("p",null,"“我们塑造了工具,然后工具再塑造我们。” ——马歇尔·麦克卢汉")],-1),_=t("br",null,null,-1),c=r("",14);function u(g,d,V,A,m,b){return a(),o("div",null,[D,s(" **** "),p,_,s(" 在飞速发展的软件时代,你是否感到压力,渴望快速而又质量上乘的开发?Visual DDD,结合了GPT-4等前沿AI技术,为你揭示了一个全新的软件设计宇宙。 "),c])}const I=l(n,[["render",u]]);export{T as __pageData,I as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250.md.3137ecb2.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250.md.3137ecb2.js" new file mode 100644 index 0000000..33b361a --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250.md.3137ecb2.js" @@ -0,0 +1 @@ +import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.a3dd33a8.js";const u=JSON.parse('{"title":"快速入门","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/快速入门.md","filePath":"base/product/DDD可视化开发平台文档/快速入门.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/快速入门.md"},c=e("h1",{id:"快速入门",tabindex:"-1"},[o("快速入门 "),e("a",{class:"header-anchor",href:"#快速入门","aria-label":'Permalink to "快速入门"'},"")],-1),d=e("p",null,[e("a",{href:"./快速入门/部署文档.html"},"部署文档")],-1),n=[c,d];function _(i,l,p,h,m,f){return a(),s("div",null,n)}const b=t(r,[["render",_]]);export{u as __pageData,b as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250.md.3137ecb2.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250.md.3137ecb2.lean.js" new file mode 100644 index 0000000..33b361a --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250.md.3137ecb2.lean.js" @@ -0,0 +1 @@ +import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.a3dd33a8.js";const u=JSON.parse('{"title":"快速入门","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/快速入门.md","filePath":"base/product/DDD可视化开发平台文档/快速入门.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/快速入门.md"},c=e("h1",{id:"快速入门",tabindex:"-1"},[o("快速入门 "),e("a",{class:"header-anchor",href:"#快速入门","aria-label":'Permalink to "快速入门"'},"")],-1),d=e("p",null,[e("a",{href:"./快速入门/部署文档.html"},"部署文档")],-1),n=[c,d];function _(i,l,p,h,m,f){return a(),s("div",null,n)}const b=t(r,[["render",_]]);export{u as __pageData,b as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\345\277\253\351\200\237\345\205\245\351\227\250\346\246\202\350\277\260.md.67e16f27.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\345\277\253\351\200\237\345\205\245\351\227\250\346\246\202\350\277\260.md.67e16f27.js" new file mode 100644 index 0000000..49b52b5 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\345\277\253\351\200\237\345\205\245\351\227\250\346\246\202\350\277\260.md.67e16f27.js" @@ -0,0 +1 @@ +import{_ as a,o as l,c as t,S as e}from"./chunks/framework.a3dd33a8.js";const i="/doc/assets/1701503016545.a8a0ada9.png",f=JSON.parse('{"title":"快速入门概述","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/快速入门/快速入门概述.md","filePath":"base/product/DDD可视化开发平台文档/快速入门/快速入门概述.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/快速入门/快速入门概述.md"},_=e('本文指引企业不同角色的人员使用 DDD可视化开发平台。
为快速了解如何使用 DDD可视化开发平台 进行云原生应用建设,您可以通过示例项目和参考帮助文档进行实验,了解业务场景分析,架构设计、DDD编码,AI辅助拜尼马主要过程。关于示例项目的内容,请参见 示例项目简介和示例项目的使用限制说明等。
如果您是系统管理员,需要添加账号、团队管理,为企业成员授权,请参见 平台和项目管理。
如果您是业务专家/产品人员,需要进行以下操作:
如果您是架构师,作为架构设计的核心人员您需要以下操作
如果您是开发人员,需要以下操作
本文介绍通过理解和定义业务问题。目标是识别关键的业务需求和约束,以及确定软件解决方案应如何帮助业务达成其目标,为达成这个目标,需要的操作流程,以及各角色之间的协同关系
与业务专家合作,理解业务目标和挑战。
确定关键业务流程和操作。
收集和分析业务规则、术语和数据。
产品愿景:是对产品顶层价值设计,对产品目标用户、核心价值、差异化竞争点等信息达成一致,避免产品偏离方向
基于以上的规则,请假系统的产品愿景为:
为了满足内外部人员,他们的在线请假、自动考勤统计和外部人员管理的需求,我们建设这个在线请假考勤系统,它是一个在线请假平台,可以自动考勤统计。它可以同时支持内外网请假,同时管理内外部人员请假和定期考勤分析,而不像 HR 系统,只管理内部人员,且只能内网使用。我们的产品内外网皆可使用,可实现内外部人员无差异管理
用户:请假人
请假人登录系统:从权限微服务获取请假人信息和权限数据,完成登录认证。
创建请假单:打开请假页面,选择请假类型和起始时间,录入请假信息。保存并创建请假单,提交请假审批。
修改请假单:查询请假单,打开请假页面,修改请假单,提交请假审批。
提交审批:获取审批规则,根据审批规则,从人员组织关系中获取审批人,给请假单分配审批人。
用户:审批人
审批人登录系统:从权限微服务获取审批人信息和权限数据,完成登录认证。
获取请假单:获取审批人名下请假单,选择请假单。
审批:填写审批意见。
逐级审批:如果还需要上级审批,根据审批规则,从人员组织关系中获取审批人,给请假单分配审批人。重复以上 4 步。
最后审批人完成审批。
在DDD 可视化平台中的操作步骤为:
收集请假类型(比如病假、年假、事假等)、审批规则和企业政策。 构建统一语言
',36),h=[c];function d(_,u,g,m,b,f){return t(),e("div",null,h)}const x=a(p,[["render",d]]);export{P as __pageData,x as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\270\200\357\274\232\344\270\232\345\212\241\345\234\272\346\231\257\345\210\206\346\236\220.md.fabceb25.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\270\200\357\274\232\344\270\232\345\212\241\345\234\272\346\231\257\345\210\206\346\236\220.md.fabceb25.lean.js" new file mode 100644 index 0000000..c64ea5a --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\270\200\357\274\232\344\270\232\345\212\241\345\234\272\346\231\257\345\210\206\346\236\220.md.fabceb25.lean.js" @@ -0,0 +1 @@ +import{_ as a,o as t,c as e,S as l}from"./chunks/framework.a3dd33a8.js";const r="/doc/assets/ef218e23ea2a8dc756af885ae06e61b2-1702032414862.6757ff53.jpg",o="/doc/assets/1702033105033.05a036a9.png",i="/doc/assets/1702032756764.5c4017df.png",s="/doc/assets/1702032992385.181a7a3e.png",n="/doc/assets/1702033017237.cb487e9d.png",P=JSON.parse('{"title":"业务场景分析","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤一:业务场景分析.md","filePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤一:业务场景分析.md","lastUpdated":1705031091000}'),p={name:"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤一:业务场景分析.md"},c=l("",36),h=[c];function d(_,u,g,m,b,f){return t(),e("div",null,h)}const x=a(p,[["render",d]]);export{P as __pageData,x as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\270\211\357\274\232\351\242\206\345\237\237\345\273\272\346\250\241.md.d9f65097.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\270\211\357\274\232\351\242\206\345\237\237\345\273\272\346\250\241.md.d9f65097.js" new file mode 100644 index 0000000..6325368 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\270\211\357\274\232\351\242\206\345\237\237\345\273\272\346\250\241.md.d9f65097.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const l="/doc/assets/1702199265314.7239bdc6.png",i="/doc/assets/1702199299683.bf0f85c3.png",r="/doc/assets/1702199320462.006dba36.png",s="/doc/assets/1702199955797.527c8749.png",c="/doc/assets/1702199968098.6e53b29f.png",n="/doc/assets/1702199989242.8bcaf9d6.png",h="/doc/assets/1702200100855.7cd6ea51.png",p="/doc/assets/1702199778632.c5673622.png",d="/doc/assets/1702199811877.59362419.png",u="/doc/assets/1702199819784.35193afc.png",T=JSON.parse('{"title":"领域建模","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤三:领域建模.md","filePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤三:领域建模.md","lastUpdated":1705031091000}'),_={name:"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤三:领域建模.md"},b=o('本文描述系统架构师创建反映业务领域的概念模型,与领域专家合作以确保模型准确反映业务实体和关系,如何构建领域模型,对具体的业务场景进行架构设计
描述:收集、整理、记录用户需求和系统功能需求的文档,它对于软件开发过程起着指导、衡量和验证作用,以及软件设计的思路,解决方案等信息
详情请参见:需求资料
具体信息的记录,按实际情况而定, 如请假系统中,记录了请假的用户故事的用例分析
描述:产品愿景是对于产品发展方向和目标的总体概述,它阐述了产品应该是什么、为什么存在、为谁服务、带来什么价值。
描述:为了协调团队成员(包括开发人员、客户、领域专家等)对于业务领域的理解而共同制定的该领域内的术语和表达方式;
描述:为了协调团队成员(包括开发人员、测试、领域专家等)对于业务领域的理解而共同制定的该领域内的模型; 它描述了当前业务领域提供哪些业务原子能力;
详细步骤如:
描述:描述当前业务领域下包含的查询原子能力,对应一个查询器;
查询器,可应用于,对外接口的展示,UI 的显示等
描述:数据模型即数据存储模型,是数据的最终存储结构;提高系统的数据质量、性能和可维护性;
',39),m=[b];function q(k,f,g,P,x,D){return e(),t("div",null,m)}const $=a(_,[["render",q]]);export{T as __pageData,$ as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\270\211\357\274\232\351\242\206\345\237\237\345\273\272\346\250\241.md.d9f65097.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\270\211\357\274\232\351\242\206\345\237\237\345\273\272\346\250\241.md.d9f65097.lean.js" new file mode 100644 index 0000000..08f6262 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\270\211\357\274\232\351\242\206\345\237\237\345\273\272\346\250\241.md.d9f65097.lean.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const l="/doc/assets/1702199265314.7239bdc6.png",i="/doc/assets/1702199299683.bf0f85c3.png",r="/doc/assets/1702199320462.006dba36.png",s="/doc/assets/1702199955797.527c8749.png",c="/doc/assets/1702199968098.6e53b29f.png",n="/doc/assets/1702199989242.8bcaf9d6.png",h="/doc/assets/1702200100855.7cd6ea51.png",p="/doc/assets/1702199778632.c5673622.png",d="/doc/assets/1702199811877.59362419.png",u="/doc/assets/1702199819784.35193afc.png",T=JSON.parse('{"title":"领域建模","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤三:领域建模.md","filePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤三:领域建模.md","lastUpdated":1705031091000}'),_={name:"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤三:领域建模.md"},b=o("",39),m=[b];function q(k,f,g,P,x,D){return e(),t("div",null,m)}const $=a(_,[["render",q]]);export{T as __pageData,$ as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\272\214\357\274\232\345\234\272\346\231\257\350\277\207\347\250\213\345\210\206\346\236\220.md.ec7db98d.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\272\214\357\274\232\345\234\272\346\231\257\350\277\207\347\250\213\345\210\206\346\236\220.md.ec7db98d.js" new file mode 100644 index 0000000..6352fe8 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\272\214\357\274\232\345\234\272\346\231\257\350\277\207\347\250\213\345\210\206\346\236\220.md.ec7db98d.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as l}from"./chunks/framework.a3dd33a8.js";const i="/doc/assets/1702195881969.e4bfead5.png",r="/doc/assets/1702196639416.da3452ff.png",o="/doc/assets/1702196821541.95595caf.png",s="/doc/assets/1702196859880.6c46dd83.png",P=JSON.parse('{"title":"场景过程分析","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤二:场景过程分析.md","filePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤二:场景过程分析.md","lastUpdated":1705031091000}'),c={name:"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤二:场景过程分析.md"},d=l('描述:描述当前业务领域下实体对象之间的字段映射关系;对应代码中的Convert转换器;
本文介绍,作为产品和架构师深入入分析特定的业务场景和流程,以便更好地了解业务操作的具体细节。通过这种方式,可以识别出关键业务流程,以便于拆分关键的业务模块 。
分析审批流程中的决策点,如直接主管审批、高级审批、自动审批等。
需要根据审批规则进行构建,以此推断出需要构建一个审批规则的流程
映射数据流,如申请信息从员工到经理,再到人事部门
考虑异常情况,比如申请撤回、审批拒绝、审批超时等
请假模块
审批规则模块
本文描述如何通过模型转换成为代码,直接生成即可运行,可以直接与前端进行联调,只要直接部署到开发环境即可。
cola 架构
adapter
按业务域进行分包
按业务场景进行分包
controller的api
接口
适配层(Adapter Layer):负责对前端展示(web,wireless,wap)的路由和适配,对于传统B/S系统而言,adapter就相当于MVC中的controller;
按业务域进行分包
按业务场景进行分包
controller的api
接口
controller标准化代码生成
app
应用层(Application Layer):主要负责获取输入,组装上下文,参数校验,调用领域层做业务处理,如果需要的话,发送消息通知等。层次是开放的,应用层也可以绕过领域层,直接访问基础实施层
业务场景的应用服务
业务域的应用服务
client
Client模块(Client Module):包含的代码应该是常见的服务接口Facade和DTO数据传输对象,如API、DTO、领域事件、Command和Query对象等等
domain
领域层(Domain Layer):主要是封装了核心业务逻辑,并通过领域服务(Domain Service)和领域对象(Domain Entity)的方法对App层提供业务实体和业务逻辑计算。领域是应用的核心,不依赖任何其他层次;
infrastructure
基础实施层(Infrastructure Layer):主要负责技术细节问题的处理,比如数据库的CRUD、搜索引擎、文件系统、分布式服务的RPC等。此外,领域防腐的重任也落在这里,外部依赖需要通过gateway的转义处理,才能被上面的App层和Domain层使用。
运行即显示swagger 地址进行测试。可直接链接数据库
',26),m=[g];function h(b,f,q,D,k,P){return a(),o("div",null,m)}const x=t(_,[["render",h]]);export{A as __pageData,x as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\272\224\357\274\232\346\250\241\345\236\213\345\215\263\344\273\243\347\240\201.md.5878d30e.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\272\224\357\274\232\346\250\241\345\236\213\345\215\263\344\273\243\347\240\201.md.5878d30e.lean.js" new file mode 100644 index 0000000..fc0ffbc --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\344\272\224\357\274\232\346\250\241\345\236\213\345\215\263\344\273\243\347\240\201.md.5878d30e.lean.js" @@ -0,0 +1 @@ +import{_ as t,o as a,c as o,S as e}from"./chunks/framework.a3dd33a8.js";const l="/doc/assets/1702262211025.d69b25af.png",s="/doc/assets/1702202102986.e338ffd4.png",r="/doc/assets/1702202136736.2857bc82.png",i="/doc/assets/1702202185998.f9c228a7.png",p="/doc/assets/1702202251348.f7e91949.png",c="/doc/assets/1702202353571.9a93f607.png",n="/doc/assets/1702202372380.6d3647e7.png",d="/doc/assets/1702202511502.c0b06b0b.png",u="/doc/assets/1702202540222.003a739a.png",A=JSON.parse('{"title":"模型即代码","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤五:模型即代码.md","filePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤五:模型即代码.md","lastUpdated":1705031091000}'),_={name:"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤五:模型即代码.md"},g=e("",26),m=[g];function h(b,f,q,D,k,P){return a(),o("div",null,m)}const x=t(_,[["render",h]]);export{A as __pageData,x as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\345\205\255\357\274\232AI\350\276\205\345\212\251\347\274\226\347\240\201.md.4d0d7f45.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\345\205\255\357\274\232AI\350\276\205\345\212\251\347\274\226\347\240\201.md.4d0d7f45.js" new file mode 100644 index 0000000..8c0bdd9 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\345\205\255\357\274\232AI\350\276\205\345\212\251\347\274\226\347\240\201.md.4d0d7f45.js" @@ -0,0 +1 @@ +import{_ as a,o as t,c as o,S as e}from"./chunks/framework.a3dd33a8.js";const s="/doc/assets/1702203283390.4c046c71.png",i="/doc/assets/1702203369383.7eaab9b0.png",l="/doc/assets/1702203558984.bbabcd05.png",c="/doc/assets/1702203421595.95f22c78.png",r="/doc/assets/1702203465353.e0bcd17b.png",p="/doc/assets/1702203692092.772c75aa.png",n="/doc/assets/1702203675764.041ae05a.png",_="/doc/assets/1702203775583.996a9ff0.png",d="/doc/assets/1702203808499.13cb0e47.png",P=JSON.parse('{"title":"AI辅助编码","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤六:AI辅助编码.md","filePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤六:AI辅助编码.md","lastUpdated":1705031091000}'),h={name:"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤六:AI辅助编码.md"},u=e('本文介绍,在使用 模型即代码
生成结构性代码之后,在基于此通过AI辅助编码, 让开发人员具有更高的效率和质量
方式一: 选择要生成的单元测试的类,右键:
选中代码-右键单元测试,则生成指定代码的单元测试
经常应用与对源代码的阅读,对复杂代码阅读
启动,右键选择要读的代码
输出结果
算法,以及规则性代码
本文描述 在领域模型设计完成之后,在项目的概关键角色人员对,设计的进行回顾评审与校验,以便于确认大家都对需求,设计都达成一致
业务场景的文档评审
领域模型文档的评审
业务域设计文档的评审
应用的文档评审
在业务场景层面达成一致, 关联人员: 业务,产品, 架构师, 开发人员, 测试
包含了,查询模型, 数据模型, 聚合 之间的关系的检查与补充-
识别有多少个领域对象, 以及领域对象之间的关系
包含了,对这个业务模块的整体的设计思路,目标愿景, 模型图,接口 等的评审
打开文档
应用文档是针对于多个业务文档和业务场景文档的集合,一个应用一般等于一个限界上下文
文档明细
',21),d=[n];function u(h,b,m,q,f,k){return t(),e("div",null,d)}const P=a(_,[["render",u]]);export{D as __pageData,P as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\345\233\233\357\274\232\350\256\276\350\256\241\350\257\204\345\256\241\344\270\216\346\240\241\351\252\214.md.dfe47316.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\345\233\233\357\274\232\350\256\276\350\256\241\350\257\204\345\256\241\344\270\216\346\240\241\351\252\214.md.dfe47316.lean.js" new file mode 100644 index 0000000..b179cf9 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\346\255\245\351\252\244\345\233\233\357\274\232\350\256\276\350\256\241\350\257\204\345\256\241\344\270\216\346\240\241\351\252\214.md.dfe47316.lean.js" @@ -0,0 +1 @@ +import{_ as a,o as t,c as e,S as l}from"./chunks/framework.a3dd33a8.js";const o="/doc/assets/1702200573002.a37297f7.png",s="/doc/assets/1702200839889.87fd4cc0.png",i="/doc/assets/1702200927644.d3ec7ab3.png",c="/doc/assets/1702201007093.1ce716bc.png",r="/doc/assets/1702201220196.9617e5fa.png",p="/doc/assets/1702201237305.0b0bc858.png",D=JSON.parse('{"title":"设计评审与校验","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤四:设计评审与校验.md","filePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤四:设计评审与校验.md","lastUpdated":1705031091000}'),_={name:"base/product/DDD可视化开发平台文档/快速入门/示例项目/步骤四:设计评审与校验.md"},n=l("",21),d=[n];function u(h,b,m,q,f,k){return t(),e("div",null,d)}const P=a(_,[["render",u]]);export{D as __pageData,P as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\347\244\272\344\276\213\351\241\271\347\233\256\347\256\200\344\273\213.md.f0d2b9da.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\347\244\272\344\276\213\351\241\271\347\233\256\347\256\200\344\273\213.md.f0d2b9da.js" new file mode 100644 index 0000000..0d07b4d --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\347\244\272\344\276\213\351\241\271\347\233\256_\347\244\272\344\276\213\351\241\271\347\233\256\347\256\200\344\273\213.md.f0d2b9da.js" @@ -0,0 +1 @@ +import{_ as t,o as e,c as a,S as r}from"./chunks/framework.a3dd33a8.js";const f=JSON.parse('{"title":"示例项目简介","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/示例项目简介.md","filePath":"base/product/DDD可视化开发平台文档/快速入门/示例项目/示例项目简介.md","lastUpdated":1705031091000}'),l={name:"base/product/DDD可视化开发平台文档/快速入门/示例项目/示例项目简介.md"},n=r('本文介绍使用示例项目的前提条件,以及示例项目的背景信息、使用限制和其全流程操作步骤简介。
已开通DDD可视化平台 公有云版本服务。
在DDD 启蒙阶段, 很多人最开始的熟悉阶段为 欧创新 在极客时间中的课程 DDD实战 为案例,若对这个课程感兴趣可以按此链接查看 在案例中主要讲了一个案例,为请假系统:
项目的目标是实现在线请假和考勤管理。
功能描述如下:
通过以下六个操作步骤,您可以了解DDD可视化平台的主线流程。
步骤 | 说明 | 相关文档 |
---|---|---|
一、业务场景分析 | 您将产品/业务人员,理解和定义业务问题。目标是识别关键的业务需求和约束,以及确定软件解决方案应如何帮助业务达成其目标,为达成这个目标,需要的操作流程,以及各角色之间的协同关系 | 步骤一:业务场景分析 |
二、场景过程分析 | 作为产品和架构师深入入分析特定的业务场景和流程,以便更好地了解业务操作的具体细节。通过这种方式,可以识别出关键业务流程,以便于拆分关键的业务模块 | 步骤二:场景过程分析 |
三、领域建模 | 系统架构师创建反映业务领域的概念模型,与领域专家合作以确保模型准确反映业务实体和关系 | 步骤三:领域建模 |
四、文档==代码 | 您作为开发人员软件开发人员编写代码的同时更新文档,确保文档的准确性和可读性,基于文档生成代码之后,确保文档与代码保持一致 | 步骤四:文档==代码 |
五、设计评审与校验 | 团队成员参与评审领域模型和设计方案,确保它们满足业务需求并具有实现可能性 | 步骤五:设计评审与校验 |
六、AI辅助编码 | 作为开发人员你将使用AI,预生成的方式来辅助编码,以提高编码的效率和编码的质量,包括:单元测试, 代码优化,代码生成,代码修复, 代码审核。 | 步骤六:AI辅助编码 |
GitHub地址:Docker部署DDD可视化开发者平台
在开始部署之前,请确保已完成以下准备工作:
安装Docker和Docker Compose:确保你的服务器已安装了Docker和Docker Compose。如果尚未安装,请按照官方文档进行安装。
拉取项目:通过git拉取本项目到部署环境下。
进入项目目录:使用命令行工具进入项目所在的目录。
请根据项目的要求进行相应的修改,例如修改端口号、添加环境变量等。
构建和启动容器:运行以下命令来构建和启动项目容器:
docker-compose up -d
验证部署:等待一段时间后,可以通过访问服务器的IP地址或域名来验证项目是否成功部署。如果一切正常,应该能够看到项目的首页或相关页面。
停止和清理容器:如果需要停止和清理容器,可以运行以下命令:
docker-compose down
请确保服务器的防火墙已经打开了所需的端口,以便能够从外部访问项目。
如果项目需要使用数据库等外部服务,请确保这些服务已经正确地配置,并能够在项目容器中访问到。
如果项目有特殊的依赖项或配置要求,请根据实际情况进行相应的调整。
在部署过程中,如果出现任何错误或问题,请参考Docker和Docker Compose的官方文档进行故障排除。
希望以上部署说明对你有帮助!如有任何疑问,请随时向我提问。
',13),i=[t];function d(r,p,c,n,h,u){return e(),o("div",null,i)}const m=a(s,[["render",d]]);export{k as __pageData,m as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\351\203\250\347\275\262\346\226\207\346\241\243.md.9818859c.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\351\203\250\347\275\262\346\226\207\346\241\243.md.9818859c.lean.js" new file mode 100644 index 0000000..ce2ed1a --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\345\277\253\351\200\237\345\205\245\351\227\250_\351\203\250\347\275\262\346\226\207\346\241\243.md.9818859c.lean.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as o,S as l}from"./chunks/framework.a3dd33a8.js";const k=JSON.parse('{"title":"visual-ddd-docker","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/快速入门/部署文档.md","filePath":"base/product/DDD可视化开发平台文档/快速入门/部署文档.md","lastUpdated":1705031091000}'),s={name:"base/product/DDD可视化开发平台文档/快速入门/部署文档.md"},t=l("",13),i=[t];function d(r,p,c,n,h,u){return e(),o("div",null,i)}const m=a(s,[["render",d]]);export{k as __pageData,m as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227.md.72d996db.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227.md.72d996db.js" new file mode 100644 index 0000000..9d1a3c2 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227.md.72d996db.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const m=JSON.parse('{"title":"操作指南","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南.md","filePath":"base/product/DDD可视化开发平台文档/操作指南.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/操作指南.md"},c=o('用户权限说明
用户根据不同权限可以分为系统管理员、组织管理员、团队管理员和团队成员:
系统管理员:系统管理者,拥有账号管理、组织创建的权限;
组织管理员:组织管理者,由系统管理员分配,拥有所属组织的管理权限;同时拥有组织下创建和关联团队的权限;
团队管理员:团队管理者,由组织管理员分配,拥有所属团队的管理权限;同时拥有团队下添加团队成员的权限;
团队成员:团队中的成员,由团队管理员分配,拥有所属团队的空间访问权限,可以进入对应团队空间进行开发;
普通用户:暂未加入任何团队的用户,拥有Chat聊天窗口的访问权限及初始化的个人空间;
描述:平台和项目管理模块提供了系统管理、组织团队管理和项目应用管理等子模块, 帮助管理员管理系统配置、组织以及项目的需求设计和代码开发等功能支持。
描述:业务建模平台是一种帮助团队成员理解和描述业务流程、决策点以及各部门之间沟通和协作的工具。
描述:业务建模平台是一种帮助团队成员理解和描述业务流程、决策点以及各部门之间沟通和协作的工具。
描述:用来描述一个或多个业务流程,帮助团队成员更好地了解业务流程、流程决策点和各个部门之间的沟通和协作。
',7),c=[_];function l(s,d,h,n,i,p){return e(),t("div",null,c)}const b=a(r,[["render",l]]);export{m as __pageData,b as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260.md.04314c6d.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260.md.04314c6d.lean.js" new file mode 100644 index 0000000..48de315 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260.md.04314c6d.lean.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const m=JSON.parse('{"title":"业务建模平台","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台.md"},_=o("",7),c=[_];function l(s,d,h,n,i,p){return e(),t("div",null,c)}const b=a(r,[["render",l]]);export{m as __pageData,b as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241.md.af27bdde.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241.md.af27bdde.js" new file mode 100644 index 0000000..02fc4ef --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241.md.af27bdde.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const m=JSON.parse('{"title":"业务场景建模","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模.md"},_=o('描述:负责业务域的设计
描述:用来描述一个或多个业务流程,帮助团队成员更好地了解业务流程、流程决策点和各个部门之间的沟通和协作。
描述:业务流程图是一种图形化的表示方式,用于描述和展示业务流程的各个步骤、活动和决策点, 以及它们之间的关联和顺序。通过使用符号和箭头来表示不同的活动和流程之间的流转关系, 业务流程图可以帮助人们更好地理解和分析业务流程,从而提高业务流程的效率和质量。
',6),c=[_];function s(l,d,n,h,i,p){return e(),t("div",null,c)}const b=a(r,[["render",s]]);export{m as __pageData,b as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241.md.af27bdde.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241.md.af27bdde.lean.js" new file mode 100644 index 0000000..5a60120 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241.md.af27bdde.lean.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const m=JSON.parse('{"title":"业务场景建模","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模.md"},_=o("",6),c=[_];function s(l,d,n,h,i,p){return e(),t("div",null,c)}const b=a(r,[["render",s]]);export{m as __pageData,b as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241_\344\270\232\345\212\241\346\265\201\347\250\213\345\233\276.md.dd6d10ce.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241_\344\270\232\345\212\241\346\265\201\347\250\213\345\233\276.md.dd6d10ce.js" new file mode 100644 index 0000000..8e0afff --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241_\344\270\232\345\212\241\346\265\201\347\250\213\345\233\276.md.dd6d10ce.js" @@ -0,0 +1 @@ +import{_ as t,o as e,c as a,S as o}from"./chunks/framework.a3dd33a8.js";const s="/doc/assets/2475b32b.bb531441.png",p="/doc/assets/8811c93c.37e0ddaa.png",D=JSON.parse('{"title":"业务流程图","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模/业务流程图.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模/业务流程图.md","lastUpdated":1705031091000}'),_={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模/业务流程图.md"},c=o('描述:在DDD可视化平台中,服务模型是通过可视化工具来设计和定义系统中的服务及其之间的关系和交互, 以提高开发效率和支持领域驱动设计。
描述:业务流程图是一种图形化的表示方式,用于描述和展示业务流程的各个步骤、活动和决策点, 以及它们之间的关联和顺序。通过使用符号和箭头来表示不同的活动和流程之间的流转关系, 业务流程图可以帮助人们更好地理解和分析业务流程,从而提高业务流程的效率和质量。
(1)拖出左侧组件,绘制业务流程图
(2)点击活动节点,关联服务实现的接口
可关联的选项如下:
业务场景服务:对应业务场景-服务模型中设计的 服务接口;
业务域服务:对应业务域中的命令和查询接口;
外部服务:外部服务接口依赖,用来补充描述外部接口引入;
',10),r=[c];function d(n,i,l,m,h,u){return e(),a("div",null,r)}const f=t(_,[["render",d]]);export{D as __pageData,f as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241_\344\270\232\345\212\241\346\265\201\347\250\213\345\233\276.md.dd6d10ce.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241_\344\270\232\345\212\241\346\265\201\347\250\213\345\233\276.md.dd6d10ce.lean.js" new file mode 100644 index 0000000..f659865 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241_\344\270\232\345\212\241\346\265\201\347\250\213\345\233\276.md.dd6d10ce.lean.js" @@ -0,0 +1 @@ +import{_ as t,o as e,c as a,S as o}from"./chunks/framework.a3dd33a8.js";const s="/doc/assets/2475b32b.bb531441.png",p="/doc/assets/8811c93c.37e0ddaa.png",D=JSON.parse('{"title":"业务流程图","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模/业务流程图.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模/业务流程图.md","lastUpdated":1705031091000}'),_={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模/业务流程图.md"},c=o("",10),r=[c];function d(n,i,l,m,h,u){return e(),a("div",null,r)}const f=t(_,[["render",d]]);export{D as __pageData,f as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241_\346\234\215\345\212\241\346\250\241\345\236\213.md.15076b65.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241_\346\234\215\345\212\241\346\250\241\345\236\213.md.15076b65.js" new file mode 100644 index 0000000..08a2b5e --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\234\272\346\231\257\345\273\272\346\250\241_\346\234\215\345\212\241\346\250\241\345\236\213.md.15076b65.js" @@ -0,0 +1 @@ +import{_ as t,o as d,c as e,S as a}from"./chunks/framework.a3dd33a8.js";const r="/doc/assets/9256046f.c7d23cae.png",o="/doc/assets/3760ae3e.83207edd.png",s="/doc/assets/5d15cabb.89da50ca.png",c="/doc/assets/d6a1c63e.9048c2a0.png",g=JSON.parse('{"title":"服务模型","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模/服务模型.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模/服务模型.md","lastUpdated":1705031091000}'),p={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务场景建模/服务模型.md"},h=a('描述:在DDD可视化平台中,服务模型是通过可视化工具来设计和定义系统中的服务及其之间的关系和交互, 以提高开发效率和支持领域驱动设计。
作用:
(1)拖出“业务活动”组件,创建一个活动描述,例如:账号登录
(2)拖出“查询”组件,对应接口的请求对象(对象名称、入参),填写相应的信息
配置项 | 说明 | 约束 | 举例 |
---|---|---|---|
标题 | 中文简称 | 账号信息 | |
标识符 | 英文名,以驼峰命名 | 标识符唯一 | AccountDTO |
描述 | 描述信息 | ||
属性 | 对应接口的出参列表 | userName |
(3)拖出“DTO”组件,对应接口的返回值对象(返回对象名称、出参),填写相应的信息
配置项 | 说明 | 约束 | 举例 |
---|---|---|---|
标题 | 中文简称 | 验证码校验 | |
标识符 | 英文名,以驼峰命名 | 标识符唯一 | CheckCodeDue |
描述 | 描述信息 | 校验验证码是否正确 | |
关联 | 需要关联的接口对象 | 只能关联一个接口对象 | 关联AccountRegister接口对象 |
(4)拖出“规则”组件,描述业务活动包含的规则,填写信息
配置项 | 说明 | 约束 | 举例 |
---|---|---|---|
名称 | 中文简称 | DDD可视化开发平台 | |
标识符 | 英文名,以驼峰命名 | 团队的应用中标识符唯一 | WdVisualDDD |
起始版本号 | 第一个版本号 | 符合语义化版本的标准 | 0.0.1、0.0.1-SNAPSHOT |
描述 | 描述信息 | DDD可视化开发平台 |
描述:负责业务域的设计
描述:收集、整理、记录用户需求和系统功能需求的文档,它对于软件开发过程起着指导、衡量和验证作用;
描述:产品愿景是对于产品发展方向和目标的总体概述,它阐述了产品应该是什么、为什么存在、为谁服务、带来什么价值。
描述:为了协调团队成员(包括开发人员、客户、领域专家等)对于业务领域的理解而共同制定的该领域内的术语和表达方式;
描述:为了协调团队成员(包括开发人员、测试、领域专家等)对于业务领域的理解而共同制定的该领域内的模型; 它描述了当前业务领域提供哪些业务原子能力;
描述:描述当前业务领域下包含的查询原子能力,对应一个查询器;
描述:数据模型即数据存储模型,是数据的最终存储结构;提高系统的数据质量、性能和可维护性;
',16),h=[l];function c(d,_,i,n,s,u){return e(),t("div",null,h)}const m=a(r,[["render",c]]);export{q as __pageData,m as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241.md.4c63a8a3.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241.md.4c63a8a3.lean.js" new file mode 100644 index 0000000..0d0da36 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241.md.4c63a8a3.lean.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const q=JSON.parse('{"title":"业务域建模","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模.md"},l=o("",16),h=[l];function c(d,_,i,n,s,u){return e(),t("div",null,h)}const m=a(r,[["render",c]]);export{q as __pageData,m as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\344\272\247\345\223\201\346\204\277\346\231\257.md.2e975996.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\344\272\247\345\223\201\346\204\277\346\231\257.md.2e975996.js" new file mode 100644 index 0000000..f3d63ca --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\344\272\247\345\223\201\346\204\277\346\231\257.md.2e975996.js" @@ -0,0 +1 @@ +import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.a3dd33a8.js";const c="/doc/assets/d836170a.963fa574.png",x=JSON.parse('{"title":"产品愿景","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/产品愿景.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/产品愿景.md","lastUpdated":1705031091000}'),n={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/产品愿景.md"},r=e("h1",{id:"产品愿景",tabindex:"-1"},[o("产品愿景 "),e("a",{class:"header-anchor",href:"#产品愿景","aria-label":'Permalink to "产品愿景"'},"")],-1),d=e("blockquote",null,[e("p",null,"描述:产品愿景是对于产品发展方向和目标的总体概述,它阐述了产品应该是什么、为什么存在、为谁服务、带来什么价值。")],-1),_=e("p",null,"因此,产品团队应该将产品愿景视为产品开发和推广过程的指南和灯塔,以此确保产品处于正确的轨道上,增加成功的机会。",-1),l=e("p",null,[e("img",{src:c,alt:""})],-1),i=[r,d,_,l];function p(h,u,m,f,D,b){return a(),s("div",null,i)}const $=t(n,[["render",p]]);export{x as __pageData,$ as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\344\272\247\345\223\201\346\204\277\346\231\257.md.2e975996.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\344\272\247\345\223\201\346\204\277\346\231\257.md.2e975996.lean.js" new file mode 100644 index 0000000..f3d63ca --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\344\272\247\345\223\201\346\204\277\346\231\257.md.2e975996.lean.js" @@ -0,0 +1 @@ +import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.a3dd33a8.js";const c="/doc/assets/d836170a.963fa574.png",x=JSON.parse('{"title":"产品愿景","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/产品愿景.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/产品愿景.md","lastUpdated":1705031091000}'),n={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/产品愿景.md"},r=e("h1",{id:"产品愿景",tabindex:"-1"},[o("产品愿景 "),e("a",{class:"header-anchor",href:"#产品愿景","aria-label":'Permalink to "产品愿景"'},"")],-1),d=e("blockquote",null,[e("p",null,"描述:产品愿景是对于产品发展方向和目标的总体概述,它阐述了产品应该是什么、为什么存在、为谁服务、带来什么价值。")],-1),_=e("p",null,"因此,产品团队应该将产品愿景视为产品开发和推广过程的指南和灯塔,以此确保产品处于正确的轨道上,增加成功的机会。",-1),l=e("p",null,[e("img",{src:c,alt:""})],-1),i=[r,d,_,l];function p(h,u,m,f,D,b){return a(),s("div",null,i)}const $=t(n,[["render",p]]);export{x as __pageData,$ as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\345\257\271\350\261\241\346\230\240\345\260\204\345\205\263\347\263\273\346\250\241\345\236\213.md.5d10dd63.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\345\257\271\350\261\241\346\230\240\345\260\204\345\205\263\347\263\273\346\250\241\345\236\213.md.5d10dd63.js" new file mode 100644 index 0000000..2dcc8ab --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\345\257\271\350\261\241\346\230\240\345\260\204\345\205\263\347\263\273\346\250\241\345\236\213.md.5d10dd63.js" @@ -0,0 +1 @@ +import{_ as e,o as s,c as o,k as t,a}from"./chunks/framework.a3dd33a8.js";const n="/doc/assets/91fd263b.2cf8b87f.png",$=JSON.parse('{"title":"对象映射关系模型","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/对象映射关系模型.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/对象映射关系模型.md","lastUpdated":1705031091000}'),_={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/对象映射关系模型.md"},c=t("h1",{id:"对象映射关系模型",tabindex:"-1"},[a("对象映射关系模型 "),t("a",{class:"header-anchor",href:"#对象映射关系模型","aria-label":'Permalink to "对象映射关系模型"'},"")],-1),r=t("blockquote",null,[t("p",null,"描述:描述当前业务领域下实体对象之间的字段映射关系;对应代码中的Convert转换器;")],-1),d=t("p",null,"分为以下两种映射类型:",-1),l=t("p",null,"Entity → DO:领域模型对象(聚合根、实体和值对象)与数据模型对象之间的转换",-1),i=t("p",null,"DTO → DO:返回结果对象(DTO)与数据模型对象之间的转换",-1),p=t("p",null,[t("img",{src:n,alt:""})],-1),h=[c,r,d,l,i,p];function u(D,f,m,b,k,x){return s(),o("div",null,h)}const g=e(_,[["render",u]]);export{$ as __pageData,g as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\345\257\271\350\261\241\346\230\240\345\260\204\345\205\263\347\263\273\346\250\241\345\236\213.md.5d10dd63.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\345\257\271\350\261\241\346\230\240\345\260\204\345\205\263\347\263\273\346\250\241\345\236\213.md.5d10dd63.lean.js" new file mode 100644 index 0000000..2dcc8ab --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\345\257\271\350\261\241\346\230\240\345\260\204\345\205\263\347\263\273\346\250\241\345\236\213.md.5d10dd63.lean.js" @@ -0,0 +1 @@ +import{_ as e,o as s,c as o,k as t,a}from"./chunks/framework.a3dd33a8.js";const n="/doc/assets/91fd263b.2cf8b87f.png",$=JSON.parse('{"title":"对象映射关系模型","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/对象映射关系模型.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/对象映射关系模型.md","lastUpdated":1705031091000}'),_={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/对象映射关系模型.md"},c=t("h1",{id:"对象映射关系模型",tabindex:"-1"},[a("对象映射关系模型 "),t("a",{class:"header-anchor",href:"#对象映射关系模型","aria-label":'Permalink to "对象映射关系模型"'},"")],-1),r=t("blockquote",null,[t("p",null,"描述:描述当前业务领域下实体对象之间的字段映射关系;对应代码中的Convert转换器;")],-1),d=t("p",null,"分为以下两种映射类型:",-1),l=t("p",null,"Entity → DO:领域模型对象(聚合根、实体和值对象)与数据模型对象之间的转换",-1),i=t("p",null,"DTO → DO:返回结果对象(DTO)与数据模型对象之间的转换",-1),p=t("p",null,[t("img",{src:n,alt:""})],-1),h=[c,r,d,l,i,p];function u(D,f,m,b,k,x){return s(),o("div",null,h)}const g=e(_,[["render",u]]);export{$ as __pageData,g as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\346\225\260\346\215\256\346\250\241\345\236\213.md.f36116b0.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\346\225\260\346\215\256\346\250\241\345\236\213.md.f36116b0.js" new file mode 100644 index 0000000..7b09161 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\346\225\260\346\215\256\346\250\241\345\236\213.md.f36116b0.js" @@ -0,0 +1 @@ +import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.a3dd33a8.js";const c="/doc/assets/d8d6ab71.1183cf5e.png",k=JSON.parse('{"title":"数据模型","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/数据模型.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/数据模型.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/数据模型.md"},n=e("h1",{id:"数据模型",tabindex:"-1"},[o("数据模型 "),e("a",{class:"header-anchor",href:"#数据模型","aria-label":'Permalink to "数据模型"'},"")],-1),d=e("blockquote",null,[e("p",null,"描述:数据模型即数据存储模型,是数据的最终存储结构;提高系统的数据质量、性能和可维护性;")],-1),_=e("p",null,[e("img",{src:c,alt:""})],-1),l=[n,d,_];function i(p,h,m,u,f,D){return a(),s("div",null,l)}const x=t(r,[["render",i]]);export{k as __pageData,x as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\346\225\260\346\215\256\346\250\241\345\236\213.md.f36116b0.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\346\225\260\346\215\256\346\250\241\345\236\213.md.f36116b0.lean.js" new file mode 100644 index 0000000..7b09161 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\346\225\260\346\215\256\346\250\241\345\236\213.md.f36116b0.lean.js" @@ -0,0 +1 @@ +import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.a3dd33a8.js";const c="/doc/assets/d8d6ab71.1183cf5e.png",k=JSON.parse('{"title":"数据模型","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/数据模型.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/数据模型.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/数据模型.md"},n=e("h1",{id:"数据模型",tabindex:"-1"},[o("数据模型 "),e("a",{class:"header-anchor",href:"#数据模型","aria-label":'Permalink to "数据模型"'},"")],-1),d=e("blockquote",null,[e("p",null,"描述:数据模型即数据存储模型,是数据的最终存储结构;提高系统的数据质量、性能和可维护性;")],-1),_=e("p",null,[e("img",{src:c,alt:""})],-1),l=[n,d,_];function i(p,h,m,u,f,D){return a(),s("div",null,l)}const x=t(r,[["render",i]]);export{k as __pageData,x as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\346\237\245\350\257\242\346\250\241\345\236\213.md.a6248a04.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\346\237\245\350\257\242\346\250\241\345\236\213.md.a6248a04.js" new file mode 100644 index 0000000..489e4f0 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\346\237\245\350\257\242\346\250\241\345\236\213.md.a6248a04.js" @@ -0,0 +1 @@ +import{_ as t,o as d,c as e,S as o}from"./chunks/framework.a3dd33a8.js";const r="/doc/assets/f9113887.4d278038.png",a="/doc/assets/cec0a7fc.3c2b3464.png",D=JSON.parse('{"title":"查询模型","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/查询模型.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/查询模型.md","lastUpdated":1705031091000}'),c={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/查询模型.md"},s=o('描述:描述当前业务领域下实体对象之间的字段映射关系;对应代码中的Convert转换器;
描述:描述当前业务领域下包含的查询原子能力,对应一个查询器;
3.4.5.1 查询条件
描述:查询条件对象,即请求对象;用于描述单个查询请求的入参;
配置项 | 说明 | 约束 | 举例 |
---|---|---|---|
标题 | 中文简称 | 用户详情查询对象 | |
标识符 | 英文名,以驼峰命名 | 标识符唯一 | AccountLogin |
描述 | 描述信息 | 查询用户详情 | |
触发来源 | 当前接口由谁触发执行 | HTTP、RPC | HTTP、RPC |
返回值 | 接口的返回类型 | 基本数据类型、自定义DTO | 引用自定义的UserDTO |
分页返回值 | 是否为分页查询接口 | 是/否 | 开启标识当前为分页查询 |
规则关联 | 接口包含的业务规则 | 支持多选 | 关联自定义的规则 |
属性 | 对应接口的入参列表 | id |
3.4.5.1 查询返回值
',9),_=[s];function p(n,l,i,h,u,b){return d(),e("div",null,_)}const T=t(c,[["render",p]]);export{D as __pageData,T as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\346\237\245\350\257\242\346\250\241\345\236\213.md.a6248a04.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\346\237\245\350\257\242\346\250\241\345\236\213.md.a6248a04.lean.js" new file mode 100644 index 0000000..52e0167 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\346\237\245\350\257\242\346\250\241\345\236\213.md.a6248a04.lean.js" @@ -0,0 +1 @@ +import{_ as t,o as d,c as e,S as o}from"./chunks/framework.a3dd33a8.js";const r="/doc/assets/f9113887.4d278038.png",a="/doc/assets/cec0a7fc.3c2b3464.png",D=JSON.parse('{"title":"查询模型","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/查询模型.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/查询模型.md","lastUpdated":1705031091000}'),c={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/查询模型.md"},s=o("",9),_=[s];function p(n,l,i,h,u,b){return d(),e("div",null,_)}const T=t(c,[["render",p]]);export{D as __pageData,T as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\347\273\237\344\270\200\350\257\255\350\250\200.md.cfae5377.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\347\273\237\344\270\200\350\257\255\350\250\200.md.cfae5377.js" new file mode 100644 index 0000000..bf1ce12 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\347\273\237\344\270\200\350\257\255\350\250\200.md.cfae5377.js" @@ -0,0 +1 @@ +import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.a3dd33a8.js";const c="/doc/assets/70cbe19c.5f33d395.png",x=JSON.parse('{"title":"统一语言","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/统一语言.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/统一语言.md","lastUpdated":1705031091000}'),n={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/统一语言.md"},r=e("h1",{id:"统一语言",tabindex:"-1"},[o("统一语言 "),e("a",{class:"header-anchor",href:"#统一语言","aria-label":'Permalink to "统一语言"'},"")],-1),d=e("blockquote",null,[e("p",null,"描述:为了协调团队成员(包括开发人员、客户、领域专家等)对于业务领域的理解而共同制定的该领域内的术语和表达方式;")],-1),_=e("p",null,"因此,统一语言作为软件开发过程中的重要一环,对于团队的协调、开发效率和业务需求的理解都具有至关重要的作用。",-1),l=e("p",null,[e("img",{src:c,alt:""})],-1),i=[r,d,_,l];function p(h,u,m,f,D,b){return a(),s("div",null,i)}const $=t(n,[["render",p]]);export{x as __pageData,$ as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\347\273\237\344\270\200\350\257\255\350\250\200.md.cfae5377.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\347\273\237\344\270\200\350\257\255\350\250\200.md.cfae5377.lean.js" new file mode 100644 index 0000000..bf1ce12 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\347\273\237\344\270\200\350\257\255\350\250\200.md.cfae5377.lean.js" @@ -0,0 +1 @@ +import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.a3dd33a8.js";const c="/doc/assets/70cbe19c.5f33d395.png",x=JSON.parse('{"title":"统一语言","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/统一语言.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/统一语言.md","lastUpdated":1705031091000}'),n={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/统一语言.md"},r=e("h1",{id:"统一语言",tabindex:"-1"},[o("统一语言 "),e("a",{class:"header-anchor",href:"#统一语言","aria-label":'Permalink to "统一语言"'},"")],-1),d=e("blockquote",null,[e("p",null,"描述:为了协调团队成员(包括开发人员、客户、领域专家等)对于业务领域的理解而共同制定的该领域内的术语和表达方式;")],-1),_=e("p",null,"因此,统一语言作为软件开发过程中的重要一环,对于团队的协调、开发效率和业务需求的理解都具有至关重要的作用。",-1),l=e("p",null,[e("img",{src:c,alt:""})],-1),i=[r,d,_,l];function p(h,u,m,f,D,b){return a(),s("div",null,i)}const $=t(n,[["render",p]]);export{x as __pageData,$ as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\351\234\200\346\261\202\346\226\207\346\241\243.md.cfff6251.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\351\234\200\346\261\202\346\226\207\346\241\243.md.cfff6251.js" new file mode 100644 index 0000000..d5b115c --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\351\234\200\346\261\202\346\226\207\346\241\243.md.cfff6251.js" @@ -0,0 +1 @@ +import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.a3dd33a8.js";const c="/doc/assets/1533d412.170094cd.png",x=JSON.parse('{"title":"需求文档","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/需求文档.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/需求文档.md","lastUpdated":1705031091000}'),n={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/需求文档.md"},r=e("h1",{id:"需求文档",tabindex:"-1"},[o("需求文档 "),e("a",{class:"header-anchor",href:"#需求文档","aria-label":'Permalink to "需求文档"'},"")],-1),d=e("blockquote",null,[e("p",null,"描述:收集、整理、记录用户需求和系统功能需求的文档,它对于软件开发过程起着指导、衡量和验证作用;")],-1),_=e("p",null,"因此,保证需求资料的准确性、完整性、规范性和可追溯性都非常重要!",-1),l=e("p",null,[e("img",{src:c,alt:""})],-1),i=[r,d,_,l];function p(h,u,m,D,f,b){return a(),s("div",null,i)}const $=t(n,[["render",p]]);export{x as __pageData,$ as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\351\234\200\346\261\202\346\226\207\346\241\243.md.cfff6251.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\351\234\200\346\261\202\346\226\207\346\241\243.md.cfff6251.lean.js" new file mode 100644 index 0000000..d5b115c --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\351\234\200\346\261\202\346\226\207\346\241\243.md.cfff6251.lean.js" @@ -0,0 +1 @@ +import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.a3dd33a8.js";const c="/doc/assets/1533d412.170094cd.png",x=JSON.parse('{"title":"需求文档","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/需求文档.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/需求文档.md","lastUpdated":1705031091000}'),n={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/需求文档.md"},r=e("h1",{id:"需求文档",tabindex:"-1"},[o("需求文档 "),e("a",{class:"header-anchor",href:"#需求文档","aria-label":'Permalink to "需求文档"'},"")],-1),d=e("blockquote",null,[e("p",null,"描述:收集、整理、记录用户需求和系统功能需求的文档,它对于软件开发过程起着指导、衡量和验证作用;")],-1),_=e("p",null,"因此,保证需求资料的准确性、完整性、规范性和可追溯性都非常重要!",-1),l=e("p",null,[e("img",{src:c,alt:""})],-1),i=[r,d,_,l];function p(h,u,m,D,f,b){return a(),s("div",null,i)}const $=t(n,[["render",p]]);export{x as __pageData,$ as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\351\242\206\345\237\237\346\250\241\345\236\213.md.a3ec6303.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\351\242\206\345\237\237\346\250\241\345\236\213.md.a3ec6303.js" new file mode 100644 index 0000000..f6f7a81 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\351\242\206\345\237\237\346\250\241\345\236\213.md.a3ec6303.js" @@ -0,0 +1 @@ +import{_ as t,o,c as e,S as p}from"./chunks/framework.a3dd33a8.js";const c="/doc/assets/c9d657f5.24f49956.png",s="/doc/assets/cb8694b8.6d8e91e4.png",a="/doc/assets/31b89342.11bdc260.png",_="/doc/assets/cea64384.df17d993.png",r="/doc/assets/3e3c0e2c.d5ea7180.png",h=JSON.parse('{"title":"领域模型","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/领域模型.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/领域模型.md","lastUpdated":1705031091000}'),n={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/领域模型.md"},d=p('描述:查询结果返回对象,供查询条件的返回值引用;用于描述单个查询请求的出参;
描述:为了协调团队成员(包括开发人员、测试、领域专家等)对于业务领域的理解而共同制定的该领域内的模型; 它描述了当前业务领域提供哪些业务原子能力;
3.4.4.1 命令
描述:当前业务域下提供的原子操作(增删改);
3.4.4.2 聚合
描述:聚合是领域驱动设计中的一个重要设计原则,其内部具有清晰的关联关系和行为,有利于业务实现和领域模型的理解和设计,同时也有助于实现数据的一致性和完整性。
3.4.4.3 实体 & 聚合根
描述:
实体(Entity)指具有唯一身份的对象或概念;
聚合根(Aggregate Root)是一种特殊类型的实体,它是聚合内部其他实体的入口点和入口操作;
3.4.4.4 值对象
描述:值对象是一种表示不可变的、没有身份标识并且具有值语义的对象。与实体(Entity)不同,值对象不需要唯一标识符,它的价值在于它的属性,而不是它的标识符。
3.4.4.5 枚举
',19),l=[d];function i(u,b,m,k,g,q){return o(),e("div",null,l)}const D=t(n,[["render",i]]);export{h as __pageData,D as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\351\242\206\345\237\237\346\250\241\345\236\213.md.a3ec6303.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\351\242\206\345\237\237\346\250\241\345\236\213.md.a3ec6303.lean.js" new file mode 100644 index 0000000..6208c03 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\237\237\345\273\272\346\250\241_\351\242\206\345\237\237\346\250\241\345\236\213.md.a3ec6303.lean.js" @@ -0,0 +1 @@ +import{_ as t,o,c as e,S as p}from"./chunks/framework.a3dd33a8.js";const c="/doc/assets/c9d657f5.24f49956.png",s="/doc/assets/cb8694b8.6d8e91e4.png",a="/doc/assets/31b89342.11bdc260.png",_="/doc/assets/cea64384.df17d993.png",r="/doc/assets/3e3c0e2c.d5ea7180.png",h=JSON.parse('{"title":"领域模型","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/领域模型.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/领域模型.md","lastUpdated":1705031091000}'),n={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务域建模/领域模型.md"},d=p("",19),l=[d];function i(u,b,m,k,g,q){return o(),e("div",null,l)}const D=t(n,[["render",i]]);export{h as __pageData,D as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260\346\246\202\350\277\260.md.eb222f04.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260\346\246\202\350\277\260.md.eb222f04.js" new file mode 100644 index 0000000..86743a6 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260\346\246\202\350\277\260.md.eb222f04.js" @@ -0,0 +1 @@ +import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.a3dd33a8.js";const k=JSON.parse('{"title":"业务建模概述","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务建模平台概述.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务建模平台概述.md","lastUpdated":1705031091000}'),_={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务建模平台概述.md"},n=e("h1",{id:"业务建模概述",tabindex:"-1"},[o("业务建模概述 "),e("a",{class:"header-anchor",href:"#业务建模概述","aria-label":'Permalink to "业务建模概述"'},"")],-1),c=e("p",null,"业务建模平台是一种用于支持业务建模和设计的工具,旨在帮助团队成员更好地理解和描述业务流程、决策点和各个部门之间的沟通和协作。平台提供了业务场景建模和业务域建模两个主要功能。",-1),r=e("p",null,"业务场景建模用于描述一个或多个业务流程,通过可视化的方式展示流程的步骤、活动和决策点,以及不同部门之间的协作关系。这有助于团队成员更好地理解业务流程,发现问题和改进机会,并提供一个共享的视图,以促进沟通和协作。",-1),d=e("p",null,"业务域建模则专注于业务领域的设计。它通过定义业务领域的概念、规则、关系和行为,帮助团队成员理清业务领域的复杂性,并提供一个可视化的模型来指导软件开发和系统设计。业务域建模有助于确保开发人员和业务人员之间的共同理解,并支持领域驱动设计的实践。",-1),l=e("p",null,"通过使用业务建模平台,团队可以更加系统和结构地分析和设计业务,减少沟通误差,提高开发效率,并为系统的演化和扩展打下坚实的基础。",-1),i=[n,c,r,d,l];function p(h,u,m,D,f,b){return a(),s("div",null,i)}const $=t(_,[["render",p]]);export{k as __pageData,$ as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260\346\246\202\350\277\260.md.eb222f04.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260\346\246\202\350\277\260.md.eb222f04.lean.js" new file mode 100644 index 0000000..86743a6 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260_\344\270\232\345\212\241\345\273\272\346\250\241\345\271\263\345\217\260\346\246\202\350\277\260.md.eb222f04.lean.js" @@ -0,0 +1 @@ +import{_ as t,o as a,c as s,k as e,a as o}from"./chunks/framework.a3dd33a8.js";const k=JSON.parse('{"title":"业务建模概述","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务建模平台概述.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务建模平台概述.md","lastUpdated":1705031091000}'),_={name:"base/product/DDD可视化开发平台文档/操作指南/业务建模平台/业务建模平台概述.md"},n=e("h1",{id:"业务建模概述",tabindex:"-1"},[o("业务建模概述 "),e("a",{class:"header-anchor",href:"#业务建模概述","aria-label":'Permalink to "业务建模概述"'},"")],-1),c=e("p",null,"业务建模平台是一种用于支持业务建模和设计的工具,旨在帮助团队成员更好地理解和描述业务流程、决策点和各个部门之间的沟通和协作。平台提供了业务场景建模和业务域建模两个主要功能。",-1),r=e("p",null,"业务场景建模用于描述一个或多个业务流程,通过可视化的方式展示流程的步骤、活动和决策点,以及不同部门之间的协作关系。这有助于团队成员更好地理解业务流程,发现问题和改进机会,并提供一个共享的视图,以促进沟通和协作。",-1),d=e("p",null,"业务域建模则专注于业务领域的设计。它通过定义业务领域的概念、规则、关系和行为,帮助团队成员理清业务领域的复杂性,并提供一个可视化的模型来指导软件开发和系统设计。业务域建模有助于确保开发人员和业务人员之间的共同理解,并支持领域驱动设计的实践。",-1),l=e("p",null,"通过使用业务建模平台,团队可以更加系统和结构地分析和设计业务,减少沟通误差,提高开发效率,并为系统的演化和扩展打下坚实的基础。",-1),i=[n,c,r,d,l];function p(h,u,m,D,f,b){return a(),s("div",null,i)}const $=t(_,[["render",p]]);export{k as __pageData,$ as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206.md.b72baaae.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206.md.b72baaae.js" new file mode 100644 index 0000000..3b98ffa --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206.md.b72baaae.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const b=JSON.parse('{"title":"平台和项目管理","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理.md"},_=o('描述:枚举类型表示具有固定数量的值的数据类型,其中的每个值都代表了一种特定的状态。
描述:平台和项目管理模块提供了系统管理、组织团队管理和项目应用管理等子模块,帮助管理员管理系统配置、组织以及项目的需求设计和代码开发等功能支持。
描述:本模块为 系统管理员 提供了组织管理,用户管理等子模块,帮助其管理系统配置
描述:本模块为 组织管理员 提供了组织管理的子模块,帮助其管理自己的组织
',8),c=[_];function l(s,d,h,n,i,u){return e(),t("div",null,c)}const m=a(r,[["render",l]]);export{b as __pageData,m as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206.md.b72baaae.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206.md.b72baaae.lean.js" new file mode 100644 index 0000000..d9bf3e6 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206.md.b72baaae.lean.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const b=JSON.parse('{"title":"平台和项目管理","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理.md"},_=o("",8),c=[_];function l(s,d,h,n,i,u){return e(),t("div",null,c)}const m=a(r,[["render",l]]);export{b as __pageData,m as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206.md.e1724243.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206.md.e1724243.js" new file mode 100644 index 0000000..7d0c9fd --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206.md.e1724243.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const r="/doc/assets/8119c502.27580f82.png",m=JSON.parse('{"title":"团队应用管理","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理.md","lastUpdated":1705031091000}'),l={name:"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理.md"},c=o('描述:提供从需求设计到代码开发的功能支持
描述:提供从需求设计到代码开发的功能支持
描述:展示团队的概览信息,包含业务域、业务场景、应用等信息
描述:负责管理和维护组织和团队的统一语言;通过查看统一语言快速了解组织和团队的专业术语(统一语言) 需要注意的是,组织统一语言是组织内共享的,团队统一语言是团队内共享的
描述:负责业务场景的管理及版本的维护
描述:负责业务域的管理及版本的维护
',13),_=[c];function h(s,d,i,n,u,p){return e(),t("div",null,_)}const q=a(l,[["render",h]]);export{m as __pageData,q as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206.md.e1724243.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206.md.e1724243.lean.js" new file mode 100644 index 0000000..fe5b711 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206.md.e1724243.lean.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const r="/doc/assets/8119c502.27580f82.png",m=JSON.parse('{"title":"团队应用管理","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理.md","lastUpdated":1705031091000}'),l={name:"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理.md"},c=o("",13),_=[c];function h(s,d,i,n,u,p){return e(),t("div",null,_)}const q=a(l,[["render",h]]);export{m as __pageData,q as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206_\344\270\232\345\212\241\345\234\272\346\231\257\347\256\241\347\220\206.md.0a814c1c.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206_\344\270\232\345\212\241\345\234\272\346\231\257\347\256\241\347\220\206.md.0a814c1c.js" new file mode 100644 index 0000000..56992d9 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206_\344\270\232\345\212\241\345\234\272\346\231\257\347\256\241\347\220\206.md.0a814c1c.js" @@ -0,0 +1 @@ +import{_ as a,o as t,c as e,S as o}from"./chunks/framework.a3dd33a8.js";const s="/doc/assets/898c4434.b77e1312.png",r="/doc/assets/37e817bb.e1603487.png",p="/doc/assets/a2c32796.1a6809db.png",c="/doc/assets/2d716251.e8b18f26.png",i="/doc/assets/f304b5f2.5f0f6b2a.png",_="/doc/assets/6f3f3935.ee9261ba.png",n="/doc/assets/29be8170.b86d5f34.png",l="/doc/assets/a7b42838.41b8ce2c.png",d="/doc/assets/0ea1ff14.16f10f3a.png",b="/doc/assets/f4d4ce32.af975e12.png",h="/doc/assets/0a7ebfd4.95e34a20.png",m="/doc/assets/76a4fea0.24375244.png",A=JSON.parse('{"title":"业务场景管理","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理/业务场景管理.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理/业务场景管理.md","lastUpdated":1705031091000}'),f={name:"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理/业务场景管理.md"},u=o('描述:负责应用的管理及版本的维护
描述:负责业务场景的管理及版本的维护
(1)点击“创建业务场景”按钮
(2)填写业务场景的基本信息,点击确定;
(1)点击“设置”按钮
(2)编辑业务场景信息
约束:标识符不能修改
暂不支持删除业务场景
描述:用于展示业务场景的简介及概览图等信息
(1)点击“Fork版本”按钮
(2)填写新版本信息
约束:新版本号必须大于旧版本
(1)点击“查看历史版本”按钮
(2)点击“跳转”按钮,即可跳转到对应版本界面
为核心数据,暂不支持版本删除功能
(1)点击“发布”按钮
(2)填写发布信息,点击确定
(3)查看版本状态为“已发布”
描述:负责业务域的管理及版本的维护;
(1)点击“创建业务域”按钮
(2)填写业务域的基本信息,点击确定;
标识符不能修改
暂不支持删除业务域
描述:用于展示业务域的简介及概览图等信息
(1)点击“Fork版本”按钮
(2)填写新版本信息
约束:新版本号必须大于旧版本
(1)点击“查看历史版本”按钮
(2)点击“跳转”按钮,即可跳转到对应版本界面
为核心数据,暂不支持版本删除功能
(1)点击“发布”按钮
(2)填写发布信息,点击确定
(3)查看版本状态为“已发布”
描述:负责应用的管理及版本的维护
(1)点击“创建应用”按钮
(2)填写应用的基本信息,点击确定;
配置项 | 说明 | 约束 | 举例 |
---|---|---|---|
名称 | 中文简称 | DDD可视化开发平台 | |
标识符 | 英文名,以驼峰命名 | 团队的应用中标识符唯一 | WdVisualDDD |
起始版本号 | 第一个版本号 | 符合语义化版本的标准 | 0.0.1、0.0.1-SNAPSHOT |
描述 | 描述信息 | DDD可视化开发平台 |
(1)点击“设置”按钮
(2)编辑应用信息,点击确定
约束:标识符不能修改
暂不支持删除应用
描述:用于展示应用的简介及概览图等信息
(1)点击“Fork版本”按钮
(2)填写新版本信息
约束:新版本号必须大于旧版本
(1)点击“查看历史版本”按钮
(2)点击“跳转”按钮,即可跳转到对应版本界面
为核心数据,暂不支持版本删除功能
(1)点击“关联业务域”按钮
(2)选择需要关联的业务域版本
(1)点击“关联业务域”按钮
(2)选择需要关联的业务域版本
约束:需要先发布关联的业务域和业务场景
(1)点击“发布”按钮
(2)填写发布信息,点击确定
(3)查看版本状态为“已发布”
',50),P=[D];function x(S,T,A,N,V,$){return a(),e("div",null,P)}const y=t(k,[["render",x]]);export{v as __pageData,y as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206_\345\272\224\347\224\250\347\256\241\347\220\206.md.26268754.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206_\345\272\224\347\224\250\347\256\241\347\220\206.md.26268754.lean.js" new file mode 100644 index 0000000..eb7c367 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206_\345\272\224\347\224\250\347\256\241\347\220\206.md.26268754.lean.js" @@ -0,0 +1 @@ +import{_ as t,o as a,c as e,S as s}from"./chunks/framework.a3dd33a8.js";const o="/doc/assets/5b60fae0.dc61e5df.png",r="/doc/assets/07b042d9.64e76cd3.png",d="/doc/assets/8294bc57.c90de065.png",p="/doc/assets/3c54e4c5.7f3df4c9.png",c="/doc/assets/8b95f397.47679a50.png",i="/doc/assets/5d606b7a.265055d7.png",n="/doc/assets/29be8170.b86d5f34.png",_="/doc/assets/c015d8e5.5dbebbca.png",l="/doc/assets/0ea1ff14.16f10f3a.png",h="/doc/assets/1ecd0e9a.8dc657fe.png",m="/doc/assets/db0071c7.d9cfd7e7.png",b="/doc/assets/9d5b5b68.ea23a761.png",f="/doc/assets/fc2b4545.e09b43bd.png",u="/doc/assets/0c222ae9.49f16e11.png",g="/doc/assets/0a7ebfd4.95e34a20.png",q="/doc/assets/678a19f2.204171a6.png",v=JSON.parse('{"title":"应用管理","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理/应用管理.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理/应用管理.md","lastUpdated":1705031091000}'),k={name:"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理/应用管理.md"},D=s("",50),P=[D];function x(S,T,A,N,V,$){return a(),e("div",null,P)}const y=t(k,[["render",x]]);export{v as __pageData,y as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206_\347\273\237\344\270\200\350\257\255\350\250\200.md.b1fe716e.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206_\347\273\237\344\270\200\350\257\255\350\250\200.md.b1fe716e.js" new file mode 100644 index 0000000..2406f9e --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\345\233\242\351\230\237\345\272\224\347\224\250\347\256\241\347\220\206_\347\273\237\344\270\200\350\257\255\350\250\200.md.b1fe716e.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as s}from"./chunks/framework.a3dd33a8.js";const c="/doc/assets/73af8b51.59dee18e.png",o="/doc/assets/5d1b68a3.36b5daf3.png",r="/doc/assets/da391d3e.3252c722.png",p="/doc/assets/1c93c013.25d14ca6.png",i="/doc/assets/14e4b727.2ddc5158.png",l="/doc/assets/424f5942.76c8768d.png",_="/doc/assets/8c339a19.d4af98ea.png",d="/doc/assets/aff7746d.76bfa8b1.png",n="/doc/assets/5c040059.293bf6a2.png",b="/doc/assets/42d815f4.76bd3e0c.png",h="/doc/assets/5cfb26c7.1166c501.png",m="/doc/assets/85cbdab8.12cec2a9.png",S=JSON.parse('{"title":"统一语言","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理/统一语言.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理/统一语言.md","lastUpdated":1705031091000}'),u={name:"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/团队应用管理/统一语言.md"},f=s('描述:负责管理和维护组织和团队的统一语言;通过查看统一语言快速了解组织和团队的专业术语(统一语言) 需要注意的是,组织统一语言是组织内共享的,团队统一语言是团队内共享的。
点击“新增一行”按钮,新增一条统一语言
选中需要编辑的统一语言,更新对应的内容
(1)点击统一语言管理模块,选择要删除的统一语言;
(2)在统一语言详情中点击“删除”按钮,系统会弹出确认框进行二次确认;
(3)点击确认后,该组织将被标记为删除状态并移除统一语言列表。
需要注意的是,在进行统一语言删除操作时,需要进行二次确认,以防止误删;统一语言删除成功后,将无法恢复已删除的统一语言信息,请谨慎操作。
(1)在查询页面中输入关键词,例如“昆仑”;
(2)点击“查询”按钮,系统将返回与输入关键词匹配的统一语言列表,用户可以选择查看所需统一语言信息。
需要注意的是,在进行统一语言查询操作时,可以使用关键词搜索来缩减查询的范围,便于快速查找所需统一语言信息。
(1)点击“导入Excel”按钮
(2)点击“下载模版”按钮,下载统一语言导入模版文件并编辑
(3)将需要导入的Excel文件拖入对话框中
(1)点击“导出Excel”按钮
(2)下载Excel文件
描述:通过AI快速提取文本中的统一语言,并生成对应的英文名、描述等信息
(1)点击“AI导入”按钮
(2)在文本框中粘贴需要分析的文本,点击“开始分析”按钮
(3)对分析的结果进行筛选后,点击“开始导入”按钮
描述:本模块为 系统管理员 提供了组织管理,用户管理等子模块,帮助其管理系统配置
描述:负责维护平台的组织体系和角色权限
',6),c=[_];function s(l,d,n,h,i,p){return e(),t("div",null,c)}const b=a(r,[["render",s]]);export{m as __pageData,b as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\347\263\273\347\273\237\347\256\241\347\220\206.md.b4210595.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\347\263\273\347\273\237\347\256\241\347\220\206.md.b4210595.lean.js" new file mode 100644 index 0000000..a997505 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\347\263\273\347\273\237\347\256\241\347\220\206.md.b4210595.lean.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const m=JSON.parse('{"title":"系统管理","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/系统管理.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/系统管理.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/系统管理.md"},_=o("",6),c=[_];function s(l,d,n,h,i,p){return e(),t("div",null,c)}const b=a(r,[["render",s]]);export{m as __pageData,b as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\347\263\273\347\273\237\347\256\241\347\220\206_\347\224\250\346\210\267\347\256\241\347\220\206.md.00c0e18a.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\347\263\273\347\273\237\347\256\241\347\220\206_\347\224\250\346\210\267\347\256\241\347\220\206.md.00c0e18a.js" new file mode 100644 index 0000000..1a99a7c --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\347\263\273\347\273\237\347\256\241\347\220\206_\347\224\250\346\210\267\347\256\241\347\220\206.md.00c0e18a.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as p}from"./chunks/framework.a3dd33a8.js";const o="/doc/assets/3c1ea2f8.86b3ac5f.png",r="/doc/assets/054e7e0b.f2feadbb.png",s="/doc/assets/9fb36522.74c6f698.png",c="/doc/assets/4b36522d.7dbdefc6.png",q=JSON.parse('{"title":"用户管理","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/系统管理/用户管理.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/系统管理/用户管理.md","lastUpdated":1705031091000}'),_={name:"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/系统管理/用户管理.md"},d=p('描述:对系统的用户信息进行管理和维护
描述:对系统的用户信息进行管理和维护
(1)进入用户管理模块,选择“添加用户”功能;
(2)在弹出的页面中填入用户相关信息,如用户姓名、密码、邮箱等;
(3)点击“保存”按钮,系统将自动创建该用户并分配唯一的用户ID。
需要注意的是,在进行用户创建操作时,必要的信息不能为空,而且用户账号和密码需要真实有效;系统分配的唯一用户ID便于后续的用户管理。
(1)进入用户管理模块,选择要编辑的用户;
(2)在用户详情页面中点击“编辑”按钮,进入编辑页面;
(3)在各栏中更新用户相关信息,如用户姓名、密码、邮箱等;
(4)完成修改后,点击“保存”按钮,用户信息更新成功并返回用户详情页。
(1)进入用户管理模块,选择要删除的用户;
(2)在用户详情页面中点击“删除”按钮,系统会弹出确认框进行二次确认;
(3)点击确认后,该用户将被标记为删除状态并移除用户列表。
需要注意的是,在进行用户删除操作时,需要进行二次确认,以防止误删;用户删除成功后,将无法恢复已删除的用户信息,请谨慎操作。
(1)点击用户管理模块,选择“查询用户”功能;
(2)在弹出的查询页面中输入关键词,例如“张三”;
(3)点击“查询”按钮,系统将返回与输入关键词匹配的用户列表,用户可以选择查看所需用户信息。
需要注意的是,在进行用户查询操作时,可以使用关键词搜索来缩减查询的范围,便于快速查找所需用户信息。
描述:负责维护平台的组织体系和角色权限
(1)点击组织管理模块,选择“添加组织”功能;
(2)在弹出的页面“组织名称”栏中输入组织名称,例如“昆仑云”;
(4)在“描述”栏中输入该部门的描述信息;
(4)在“管理员”栏中选择用户作为该部门的管理员;
(5)点击“保存”按钮,系统将自动创建该部门并分配唯一的组织ID。
(1)进入组织管理模块,选择要编辑的组织;
(2)在组织详情中点击“编辑”按钮,进入编辑页面;
(3)在各栏中更新组织相关信息, 如组织名称、描述、关联管理员等;
(4)完成修改后,点击“保存”按钮,组织信息更新成功并返回组织详情页。
(1)点击组织管理模块,选择要删除的组织;
(2)在组织详情中点击“删除”按钮,系统会弹出确认框进行二次确认;
(3)点击确认后,该组织将被标记为删除状态并移除组织列表。
需要注意的是,在进行组织删除操作时,需要进行二次确认,以防止误删;组织删除成功后,将无法恢复已删除的组织信息,请谨慎操作。
(1)点击组织管理模块,选择“查询组织”功能;
(2)在弹出的查询页面中输入关键词,例如“昆仑云”;
(3)点击“查询”按钮,系统将返回与输入关键词匹配的组织列表,用户可以选择查看所需部门信息。
需要注意的是,在进行组织查询操作时,可以使用关键词搜索来缩减查询的范围,便于快速查找所需部门信息。
(1)点击组织管理模块,选择“进入空间”功能,即可快速跳转到对应组织管理界面;
(2)进入组织对应的团队管理界面
描述:本模块为 组织管理员 提供了组织管理的子模块,帮助其管理自己的组织
描述:进入当前账号管理的组织
(1)当系统管理员将当前账号关联到组织后(1.1.1),可以在选择空间中看到自己管理的组织列表;
(2)点击进入组织后,可以对当前组织下的团队进行管理
描述:对当前组织下的团队进行管理和维护
',11),d=[_];function l(n,i,p,h,u,b){return e(),t("div",null,d)}const f=a(s,[["render",l]]);export{q as __pageData,f as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\347\273\204\347\273\207\345\233\242\351\230\237\347\256\241\347\220\206.md.24c6d5c1.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\347\273\204\347\273\207\345\233\242\351\230\237\347\256\241\347\220\206.md.24c6d5c1.lean.js" new file mode 100644 index 0000000..2e8b04d --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\347\273\204\347\273\207\345\233\242\351\230\237\347\256\241\347\220\206.md.24c6d5c1.lean.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const r="/doc/assets/630dc00d.5208db46.png",c="/doc/assets/c7870c19.d7081473.png",q=JSON.parse('{"title":"组织团队管理","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/组织团队管理.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/组织团队管理.md","lastUpdated":1705031091000}'),s={name:"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/组织团队管理.md"},_=o("",11),d=[_];function l(n,i,p,h,u,b){return e(),t("div",null,d)}const f=a(s,[["render",l]]);export{q as __pageData,f as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\347\273\204\347\273\207\345\233\242\351\230\237\347\256\241\347\220\206_\345\233\242\351\230\237\346\210\220\345\221\230\347\256\241\347\220\206.md.9abc13cf.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\347\273\204\347\273\207\345\233\242\351\230\237\347\256\241\347\220\206_\345\233\242\351\230\237\346\210\220\345\221\230\347\256\241\347\220\206.md.9abc13cf.js" new file mode 100644 index 0000000..fa5e2bf --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\271\263\345\217\260\345\222\214\351\241\271\347\233\256\347\256\241\347\220\206_\347\273\204\347\273\207\345\233\242\351\230\237\347\256\241\347\220\206_\345\233\242\351\230\237\346\210\220\345\221\230\347\256\241\347\220\206.md.9abc13cf.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const r="/doc/assets/3d922f12.f88bf460.png",s="/doc/assets/bd36e47c.1aef0fac.png",_="/doc/assets/ab0b86b7.9e09678f.png",D=JSON.parse('{"title":"团队成员管理","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/组织团队管理/团队成员管理.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/组织团队管理/团队成员管理.md","lastUpdated":1705031091000}'),c={name:"base/product/DDD可视化开发平台文档/操作指南/平台和项目管理/组织团队管理/团队成员管理.md"},p=o('描述:负责管理团队下的成员信息,授权团队的访问权限;
描述:负责管理团队下的成员信息,授权团队的访问权限;
(1)点击团队成员管理模块,选择“添加团队成员”功能;
(2)在页面“成员名称”栏中搜索团队名称,例如“张三”;
(3)点击“添加”按钮,系统将自动关联该团队成员。
需要注意的是,在进行用户查询操作时,除了使用名称搜索,也可以使用邮箱搜索来缩减查询的范围,便于快速查找所需用户。
(1)点击团队成员管理模块,找到需要更新角色的用户;
(2)在页面“成员角色”栏中选择角色,例如“开发者”;
(1)点击团队成员管理模块,选择要删除的团队成员;
(2)在团队成员详情中点击“删除”按钮,该成员将被移除成员列表。
描述:对当前组织下的团队进行管理和维护
(1)点击团队管理模块,选择“添加团队”功能;
(2)在弹出的页面“团队名称”栏中输入团队名称,例如“开发云”;
(4)在“描述”栏中输入该团队的描述信息;
(4)在“管理员”栏中选择用户作为该团队的管理员;
(5)点击“保存”按钮,系统将自动创建该团队并分配唯一的组织ID。
(1)进入团队管理模块,选择要编辑的团队;
(2)在团队详情中点击“编辑”按钮,进入编辑页面;
(3)在各栏中更新团队相关信息, 如组织名称、描述、关联管理员等;
(4)完成修改后,点击“保存”按钮,团队信息更新成功并返回团队详情页。
(1)点击团队管理模块,选择要删除的团队;
(2)在团队详情中点击“删除”按钮,系统会弹出确认框进行二次确认;
(3)点击确认后,该组织将被标记为删除状态并移除团队列表。
需要注意的是,在进行团队删除操作时,需要进行二次确认,以防止误删;团队删除成功后,将无法恢复已删除的团队信息,请谨慎操作。
(1)点击团队管理模块,选择“查询团队”功能;
(2)在弹出的查询页面中输入关键词,例如“开发云”;
(3)点击“查询”按钮,系统将返回与输入关键词匹配的团队列表,用户可以选择查看所需团队信息。
需要注意的是,在进行团队查询操作时,可以使用关键词搜索来缩减查询的范围,便于快速查找所需团队信息。
(1)点击团队管理模块,选择“进入空间”功能,即可快速跳转到对应团队管理界面;
(2)进入团队对应的团队首页
描述:应用开发平台是DDD可视化开发平台中的工具集,通过IDEA插件集成, 帮助开发人员根据可视化设计的领域模型生成应用代码,提高开发效率和代码质量。
',5),c=[_];function s(d,l,D,i,n,p){return e(),t("div",null,c)}const m=a(r,[["render",s]]);export{u as __pageData,m as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\272\224\347\224\250\345\274\200\345\217\221\345\271\263\345\217\260.md.4980bf0a.lean.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\272\224\347\224\250\345\274\200\345\217\221\345\271\263\345\217\260.md.4980bf0a.lean.js" new file mode 100644 index 0000000..371f443 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\272\224\347\224\250\345\274\200\345\217\221\345\271\263\345\217\260.md.4980bf0a.lean.js" @@ -0,0 +1 @@ +import{_ as a,o as e,c as t,S as o}from"./chunks/framework.a3dd33a8.js";const u=JSON.parse('{"title":"应用开发平台","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/应用开发平台.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/应用开发平台.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/操作指南/应用开发平台.md"},_=o("",5),c=[_];function s(d,l,D,i,n,p){return e(),t("div",null,c)}const m=a(r,[["render",s]]);export{u as __pageData,m as default}; diff --git "a/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\272\224\347\224\250\345\274\200\345\217\221\345\271\263\345\217\260_IDEA\346\217\222\344\273\266\351\233\206\346\210\220.md.a1d3b2cf.js" "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\272\224\347\224\250\345\274\200\345\217\221\345\271\263\345\217\260_IDEA\346\217\222\344\273\266\351\233\206\346\210\220.md.a1d3b2cf.js" new file mode 100644 index 0000000..9dc1a71 --- /dev/null +++ "b/assets/base_product_DDD\345\217\257\350\247\206\345\214\226\345\274\200\345\217\221\345\271\263\345\217\260\346\226\207\346\241\243_\346\223\215\344\275\234\346\214\207\345\215\227_\345\272\224\347\224\250\345\274\200\345\217\221\345\271\263\345\217\260_IDEA\346\217\222\344\273\266\351\233\206\346\210\220.md.a1d3b2cf.js" @@ -0,0 +1 @@ +import{_ as t,o as l,c as a,S as e}from"./chunks/framework.a3dd33a8.js";const o="/doc/assets/fbbdc4e1.a5afeb47.png",i="/doc/assets/513402b3.c7fbe0e6.png",s="/doc/assets/6a13c605.aa4f5236.png",f=JSON.parse('{"title":"VisualDDD(DDD可视化开发平台)","description":"","frontmatter":{},"headers":[],"relativePath":"base/product/DDD可视化开发平台文档/操作指南/应用开发平台/IDEA插件集成.md","filePath":"base/product/DDD可视化开发平台文档/操作指南/应用开发平台/IDEA插件集成.md","lastUpdated":1705031091000}'),r={name:"base/product/DDD可视化开发平台文档/操作指南/应用开发平台/IDEA插件集成.md"},D=e('描述:VisualDDD(DDD可视化开发平台)插件可以通过关联项目和业务域、业务场景,快速生成代码, 并支持自定义项目信息和输出路径,以及生成项目框架。
描述:VisualDDD(DDD可视化开发平台)插件可以通过关联项目和业务域、业务场景,快速生成代码, 并支持自定义项目信息和输出路径,以及生成项目框架。
进入 DDD可视化开发平台 创建项目,关联需要的业务域、业务场景
一、 安装VisualDDD(DDD可视化开发平台)插件
二、 登录平台账号
tips: 同平台账号
三、 关联平台配置
将当前项目同平台应用进行关联绑定
四、 生成代码
定义:主要表现形式就是一个业务流程图,用于表示业务场景下,各个角色的交互行为 输入角色:产品 关联角色:产品,架构师,开发 包含内容: 开始,业务活动,决策节点,注释节点,结束,版本号管理 规则:
输入时机
应用场景:
**表现形式 **:
定义:基于产品业务流程的输入,分析业务流的完整性,业务流节点产生的业务规则 输入角色:产品,架构师,开发者 关联角色:产品,架构师,开发,测试,业务,项目经理 包含内容:指令,事件,业务流, 规则 规则:
输入时机
应用场景:
表现形式
定义:统一语言(Ubiquitous Language)是一种业务方与技术方共同使用的共同语言(Common Language),业务方与技术方通过共同语言描述业务规则与需求变动,并且与团队达成一致 输入角色:产品,架构师,开发者 关联角色:产品,架构师,开发,测试,业务,项目经理 包含内容:统一的领域术语, 领域行为的描述 范围:团队, 应用,业务域 规则:
输入时机
应用场景:
表现形式:
概念 | 英文 | 定义 | 约束 | 举例 | 范围 |
---|---|---|---|---|---|
资源 | Resource | BD进行销售活动的对象 | POI | 全局 | |
公海 | PublicSea | 业务目标限定的模拟资源全集 | 也业务目标对应,比如交易公海是为了做交易,推广公海是为了推广 | 业务目标是团购买单合作,限定POI为到餐全国和综合58同城的 | SCRM |
统一语言哪里来
定义:产品愿景是对产品顶层价值设计,对产品目标用户、核心价值、差异化竞争点等信息达成一致,避免产品偏离方向 角色:产品 关联角色:产品,架构师,开发 包含内容:产品目标用户、核心价值、差异化竞争点 规则:
应用场景:
示例
定义:描述业务领域内的业务实体,业务行为,以及实体之间的关系 角色:产品 关联角色:产品,架构师,开发 包含内容: 指令(支持配置定时任务、事件、Web RPC等来源),事件,领域对象(聚合根,实体, 值对象, 仓储)领域服务,视图 规则:在领域模型图完成之后,架构师可以对业务场景中的业务活动绑定业务域中提供的能力 应用场景:
表现形式:
领域模型图在代码生成脚手架生成时,会映射到controller, rpc 的接口实现。 在后续做双向同步时则只修改属性,方法签名,以及类的名字即可。
定义:业务域的总览图,可以 映射定位到业务域的各个环节 角色:产品 关联角色:产品,架构师,开发 包含内容: ER图统计数据, 统一语言统计量,领域模对象的统计,接口数量统计,产品愿景,版本记录,领域的能力图谱(提供的api,提供的事件,消费的事件,定时任务) 规则:全局的描述了应用的信息, 会显示更新日志 应用场景:
表现形式:
定义:应用的总览图,可以 映射定位到应用的各个环节 角色:产品,架构师 关联角色:产品,架构师,开发 包含内容: 应用基本信息, ER图统计数据, 统一语言统计量,领域模对象的统计,接口数量统计,产品愿景,版本记录,业务场景图,产品愿景,应用的能力图谱(提供的api,提供的事件,消费的事件,消费的api),上下文映射图(关联了哪些应用、业务域),版本号的统计数据 规则:全局的描述了应用的信息, 会显示更新日志 应用场景:
表现形式:
定义:描述产品需要达成的目标 角色:产品 关联角色:产品,架构师,开发 包含内容: 实体,属性,关系 规则:
应用场景:
表现形式:
概念定义:描述一个应用[微服务-限界上下文]的特定语言,描述部分有 使用对象: 领域专家,架构师,产品,开发 核心价值:
type Versionable = {
+ // 版本号
+ version: string
+}
+
+type Name = {
+ title?: string // 中文名称
+ name: string // 唯一英文标识符
+ description?: string // 详细描述信息,默认为空字符串
+ // 元数据,由开发者自行扩展, DSL 本身不会关心其内容,DSL 消费者会关心
+ meta?: { [key: string]: string }
+}
+
+
+type Application = Name & Versionable & {
+ package: string // 包名
+ businessDomains: BusinessDomain [] // 业务域
+ businessScenarios: BusinessScenario [] // 业务场景
+}
概念定义:描述一个完整业务提供的原子能力,以及实现细节 使用对象: 领域专家,架构师,产品,开发 核心价值:
type BusinessDomain = Name & Versionable & {
+ domainModel: DomainModel // 领域模型
+ dataModel: ERModel // 数据模型
+ queryModel: QueryModel // 查询模型
+ objectMapper: ObjectMapperModel // 结构化对象映射
+ vision: string // 产品愿景
+ document: string // 需求资料
+}
+
+
+// 查询模型
+type QueryModel = {
+ queries: Query[]
+ dtos: DTO[]
+ // enums: Enum[]
+}
+
+// 结构化对象映射
+type ObjectMapperModel = {
+ mappers: ObjectMapper[]
+}
概念定义:描述一个业务的核心业务能力,不涉及实现 使用对象: 领域专家,架构师,产品,开发 核心价值:
// 领域模型
+type DomainModel = {
+ // 聚合
+ aggregates: Aggregate[]
+}
+
+
+type Entity = Class & {
+ id: Property
+}
+
+type ValueObject = Class
+
+// Data Transfer Object
+type DTO = Class
+
+// Data Object
+type DO = Class
+
+
+type Aggregate = Name & {
+ // 聚合根, 指定实体名称
+ root: Entity
+ // 实体, 默认为 []
+ entities?: Entity[]
+ // 非聚合值对象,默认为 []
+ valueObjects?: ValueObject[]
+ // 枚举,默认为 []
+ enums?: Enum[]
+ // 命令
+ commands: Command[]
+}
+
+// 领域事件
+type DomainEvent = Name & {
+ // 属性
+ properties: Property[]
+}
+
+type Rule = Name & {}
+
+type CommandSource = {
+ type: 'http'
+} | {
+ type: 'rpc'
+} | {
+ type: 'event'
+ // 事件名
+ value: string
+} | {
+ type: 'schedule'
+ // cron 表达式
+ value: string
+}
+
+// 绑定的仓储能力
+type Repository = 'create' | 'modify' | 'remove'
+
+
+// 指令执行器,存在默认模板
+type Handler = Class
+
+type Command = Name & {
+ // 命令的触发来源,默认为 http, rpc 两种类型, 优先使用query,command 上设定的
+ source?: CommandSource[]
+ // 绑定的仓储能力
+ repository: Repository
+ // 命令分类,小写,可选,会影响 java 包结构,如果未提供,则为 name
+ category?: string
+ // 命令属性
+ properties: Property[]
+ // 执行器, 默认 Handler 为 ·命令名称 + Handler· 连接起来的类, 有固定的实现逻辑
+ handler?: Handler
+ // 事件, 即命令执行完成之后的触发的领域事件,默认为 []
+ event?: DomainEvent
+ // 事件是否是需要发送 false 不发送,true 发送
+ eventSendable?: false
+ // 规则, 默认为 []
+ rules?: Rule[]
+
+ // 命令返回值,默认为 空。 备注:可能不符合 CQRS 严格定义
+ return?: Return
+}
? -> 标识一个可选的字段
type Type = string
+
+// 基本类型、集合类型,对象类型、枚举
+// 参考bizworks
+// 示例
+// 基础 类型,Long, String
+// 集合类型 List<String>, Set<String>, Map<Integer, String>
+// 引用类型 [name:uuid], name 为类型名称, uuid 为类型的唯一id,
+// [Foo:12123-1231dad-121adad-123saddsaf]
+// List<[MyType:12123-1231dad-121adad-123saddsaf]>
+// Map<String, [MyType:12123-1231dad-121adad-123saddsaf]>
type Access = 'public' | 'private' | 'protected'
+
+
+// 类属性
+type Property = Name & {
+ // 数据类型
+ type: Type,
+ // 访问控制, 默认 public
+ access?: Access
+ /**
+ * 是否可选,比如 Java 场景,生成代码会携带 @Nullable 注解,默认为 false
+ */
+ optional?: boolean
+}
+
+/**
+ * 方法参数
+ */
+type Parameter = Name & {
+ // 参数类型
+ type Type
+ /**
+ * 是否可选,比如 Java 场景,生成代码会携带 @Nullable 注解
+ */
+ optional?: boolean
+}
+
+type Return = {
+ type: Type
+}
+
+type MethodDefine = {
+ // 描述
+ description?: string,
+
+ // 方法参数
+ parameters: Parameter[]
+
+ // 返回值
+ return: Return
+}
+
+type Method = Name & {
+ // TODO: 目前不支持重载
+ signature: MethodDefine
+ // 访问控制, 默认是 public
+ access?: Access
+ // 是否是抽象方法,默认是 false
+ abstract?: boolean
+}
+
+type Interface = Name & {
+ // 扩展的接口列表,默认为 []
+ implements?: Interface[]
+ // 实例属性,某些特定语言存在, 默认为 []
+ properties?: Property[],
+ // 实例方法, 支持方法重载, 默认为 []
+ methods?: Method[]
+}
+
+
+type Class = Name & {
+ // 继承, 默认为 null
+ extends?: Class
+ // 扩展的接口列表,默认为 []
+ implements?: Interface[]
+ // 抽象类,默认为false
+ abstract?: boolean
+
+ // 类实例属性, 默认为 []
+ properties?: Property[],
+ // 类实例方法, 支持方法重载, 默认为 []
+ methods?: Method[]
+
+ // 类属性, 静态属性,默认为 []
+ classProperties?: Property[]
+ // 类方法,静态方法,默认为 []
+ classMethods?: Method[]
+}
type EnumMember = Name & {
+ // 成员值
+ code: number | string
+}
+
+type Enum = Name & {
+ baseType: 'number' | 'string'
+ members: EnumMember[]
+}
type QuerySource = {
+ type: 'http'
+} | {
+ type: 'rpc'
+}
+
+
+// 请求
+type Query = Name & {
+ // 查询的触发来源,默认为 http, rpc 两种类型
+ source?: CommandSource[]
+ // 查询的参数实体
+ properties: Property[]
+ // 分页返回
+ pagination: boolean
+ // 执行器, 默认为 ·查询名称 + Exe· 连接起来的类, 有固定的实现逻辑
+ handler?: Class
+ // 规则, 默认为 []
+ rules?: Rule[]
+
+ // 查询返回值
+ return: Return
+}
type ObjectFieldMapper = {
+ sourceField: string
+ sourceFieldId: string
+ targetField: string
+ targetFieldId: string
+}
+
+type ObjectReference
+{
+ // 类名
+ name: string
+
+ // 类唯一 id
+ id: string
+
+ // 对象类型
+ type: 'entity' | 'valueObject' | 'dto' | 'dataObject'
+ // 对于实体、值对象等领域对象 parent 为聚合的标识符
+ // dto、dataObject 则为空
+ parent ? : string
+}
+
+type ObjectMapper = Name & {
+ // 来源类型, 类型必须存在,必须是 Class或 Class 的子类型
+ source: ObjectReference
+ // 目标类型,类型必须存在,必须是 Class或 Class 的子类型
+ target: ObjectReference
+ // 定义 source 属性到 target 的映射规则
+ // 举例:
+ // {a: 'b', c: 'd'}, 将 source a、c 分别映射到 target 到 b、d
+ // 属性的类型必须保持一致
+ mapper: ObjectFieldMapper[]
+}
Java 类型 | mysql 类型 |
---|---|
Integer | int |
bigInt | |
Decimal | decimal |
Float | float |
double | |
Double | double |
Long | bigint |
DateTime | |
Date | timestamp |
datetime | |
date | |
String | longtext |
text | |
varchar | |
Boolean | smallint |
int | |
Object | json |
type DomainDependency = {
+ // 团队 Id, 跨团队关联时需要
+ teamId?: string
+
+ // 依赖业务域 ID
+ domainId: string
+
+ // 业务域版本号 ID
+ versionId: string
+
+ // 服务id, 查询或者指令的 uuid
+ serviceId: string
+}
+
+type ExternalDependency
+{
+ name: string
+ description ? : string
+}
+
+
+// 业务场景
+type BusinessScenario = Name & {
+ // 版本
+ version: string
+
+ // 依赖的业务域服务
+ domainDependencies: DomainDependency[]
+
+ // 外部依赖
+ externalDependencies: ExternalDependency[]
+
+ // 业务场景服务,直接复用查询模型
+ serviceModel: QueryModel
+}
// 数据模型
+type ERModel = {
+ dataObjects: DataObject[]
+ // 引用关系
+ references: DataObjectReference[]
+}
+
+type DataObjectReference = {
+ source: string // NameOf<DataObject>, DataObject 标识符
+ sourceId: string
+ // [{field: a, target: 'A'}, {field: a, target: 'A'}]
+ targets: Array<{
+ // 目标表
+ target: string // NameOf<DataObject>, DataObject 标识符
+ targetId: string
+ // 关联关系
+ cardinality: 'OneToOne' | 'OneToMany' | 'ManyToMany' | 'ManyToOne'
+ // 字段映射
+ mapper: Array<{
+ sourceField: string
+ targetField: string
+ }>
+ }>
+}
+
+
+// 数据类型,定义数据库无关的
+type DataType =
+ 'Boolean'
+ | 'Text'
+ | 'LongText'
+ | 'Date'
+ | 'DateTime'
+ | 'Timestamp'
+ | 'Integer'
+ | 'Long'
+ | 'Double'
+ | 'Float'
+ | 'Decimal'
+ | 'String'
+ | 'JSON'
+// TODO: 与 mysql 类型的映射关系
+
+
+// 数据的属性
+type DataProperty = Name & {
+ // 表字段名,默认为 name 的 snake_case 模式
+ propertyName?: string
+
+ // 数据类型
+ type: DataType
+
+ // 根据具体数据类型确定,Text, LongText 不支持
+ defaultValue?: any
+
+ // 长度修饰符 默认为 0, 仅支持 String 类型
+ length?: number
+
+ // 不为空,默认false, 另外也会受主键影响
+ notNull?: false
+
+ // 是否自增, 默认为false,仅支持 Long Integer Float Double
+ autoIncrement?: false
+
+ /**
+ * 精度, 默认 10, 最大为 65, 仅 Decimal 支持
+ */
+ precision?: number;
+
+ /**
+ * 小数位, 默认 0,仅 Decimal 支持
+ */
+ scale?: number;
+}
+
+
+type IndexType = 'Normal' | 'Unique' | 'Primary' | 'FullText'
+
+type IndexMethod = 'BTREE' | 'HASH'
+
+type DataIndex = Name & {
+ // 默认为 Normal
+ type?: IndexType
+ // 索引栏位,通常以数据对象的属性名称
+ properties: string[]
+ // 默认为BTREE
+ method?: IndexMethod
+}
+
+// 数据模型
+type DataObject = Name & {
+ // 表字段名,默认为 name 的 snake_case 模式
+ tableName?: string
+ // 字段
+ properties: DataProperty[]
+ // 索引,默认为 []
+ indexes?: DataIndex[]
+}
数据类型详细描述:
类型 | mysql 类型 | 支持自增 | 支持默认值 | 支持长度 |
---|---|---|---|---|
Integer | int | √ | 0 | |
Decimal | decimal | √ | ||
Double | double | √ | 0 | |
Long | bigint | √ | 0 | |
Timestamp | timestamp | |||
DateTime | datetime | |||
Date | date | |||
LongText | longtext | √ | ||
Text | text | √ | ||
String | varchar | √ | ||
Boolean | smallint | 0 | ||
Reference | 取决于被引用类型 | |||
JSON | json |
为了简化开发者从设计模型到规范代码的实现,DDD可视化平台提供了一种平台模型到代码的单向生成功能。本文介绍DDD可视化平台单向生成功能,以及设计思路,将平台模型到代码的单向生成顺畅融入到已有的研发流程中,有效降低项目设计到编码初期的开发成本。
wake-code-generator
+ ├── wd-generator-core -- 核心模块
+ └── wd-generator-dsl -- DSL协议结构
用户通过DDD可视化平台图形界面绘制模型后,前端根据 DSL协议 以json的形式组装DSL模型并返回给后端,后端需要依据DSL模型生成相应的源码文件并返回。为了实现DSL模型到源码文件的生成,本模块设计了如下流程:
依据 DSL协议,在dsl包下定义了相应的数据结构,用于接收DSL数据。
由于DSL数据结构较为复杂,采用直接遍历的方式将增加遍历的复杂度,为了降低遍历的复杂度、减少遍历代码的维护成本,我们将数据结构的复杂度转移到构建阶段,根据DSL构建一棵多叉树结构,简化遍历元素的过程。 多叉树节点分为如下类型:
原DSL结构 构建后的元素树结构 遍历思路:深度遍历,访问元素树结构,根据元素种类往叶子元素进行遍历;同时遍历到每个元素的同时,调用元素具体的访问方法
Tips: 该阶段可以做一些数据预处理操作(关系缓存、字段修改)
根据深度遍历访问每一个元素并调用访问者提供的预处理方法; 访问者内部根据元素的类名获取元素相对应的策略类,并执行相对应的预处理策略
Tips: 该阶段为核心生成逻辑(代码生成、文件输出、流操作)
同上,根据深度遍历访问每一个元素并调用访问者提供的生成方法; 访问者内部根据元素的类名获取元素相对应的策略类,并执行相对应的生成策略
对ThreadLocal线程上下文进行清理等统一后置处理操作。
由上述流程设计可知,访问者需要提供预处理、生成逻辑、后置处理等功能,因此定义一个访问者接口,具体逻辑由不同访问者实现。
/**
+ * 访问者, 提供具体元素的操作方法
+ *
+ * @author shimmer
+ */
+public interface Visitor {
+
+ /**
+ * 预解析元素方法
+ *
+ * @param elementNode 元素节点
+ */
+ void preHandle(ElementNode elementNode);
+
+ /**
+ * 元素生成方法
+ *
+ * @param elementNode 元素节点
+ */
+ void generate(ElementNode elementNode);
+
+ /**
+ * 统一后置处理方法
+ */
+ void globalAfterHandle();
+}
原理:Velocity模版引擎是一种静态生成模版文件的模版引擎,基于vm模版语法和模版上下文替换对应的模版变量,可以得到替换后的模版文件流。
实现逻辑:填充变量到Velocity上下文、获取需要生成的模版路径,然后将原始路径解析为输出路径,最后调用Velocity模版引擎生成新文件。
封装变化点:根据上述过程,将变量填充、模版路径列表获取、解析路径等变化点封装到接口中,由不同元素提供具体实现逻辑。
/**
+ * Velocity模版引擎生成接口
+ *
+ * @author ZhuXueLiang
+ * @version 1.0
+ */
+public interface VelocityTemplateGenerate extends ElementStrategy {
+
+ /**
+ * 获取生成需要的模版路径列表
+ *
+ * @return 模版路径列表
+ */
+ List<String> getTemplatePathList();
+
+ /**
+ * 填充当前元素标签到上下文中,用于进行变量映射
+ *
+ * @param context velocity上下文
+ */
+ void putVelocityContext(VelocityContext context);
+
+ /**
+ * 解析输出路径
+ *
+ * @param templateUrl 需要解析的模版路径
+ * @param preFixOutPath 目标路径
+ * @return 输出路径
+ */
+ String parseOutputPath(String templateUrl, String preFixOutPath);
+
+ /**
+ * 处理逻辑(处理各个元素的单独逻辑)
+ *
+ * @param templateContext 上下文信息
+ * @return true/false
+ */
+ Boolean process(TemplateContext templateContext);
+}