diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js index abc80c5..3be6814 100644 --- a/docs/.vitepress/config.js +++ b/docs/.vitepress/config.js @@ -71,7 +71,7 @@ export default { items: [ { text: '欢迎使用Visal-DDD', - link: '/base/product/DDD可视化开发平台文档/产品概述/欢迎使用Visal-DDD.md' + link: '/base/product/DDD可视化开发平台文档/产品概述/欢迎使用Visual-DDD.md' }, { text: '产品简介', @@ -100,7 +100,11 @@ export default { { text: '快速入门', - items: [], + items: [ + { + text: '部署文档', + link: '/base/product/DDD可视化开发平台文档/快速入门/部署文档.md' + }], collapsible: true, collapsed: true, }, diff --git "a/docs/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.md" "b/docs/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.md" index fee63df..d5e609f 100644 --- "a/docs/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.md" +++ "b/docs/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.md" @@ -6,3 +6,5 @@ [最新动态](产品概述/最新动态.md) +[欢迎使用Visual-DDD](产品概述/欢迎使用Visual-DDD.md) + diff --git "a/docs/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/pluginIcon.svg" "b/docs/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/pluginIcon.svg" new file mode 100644 index 0000000..c8a2c07 --- /dev/null +++ "b/docs/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/pluginIcon.svg" @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + diff --git "a/docs/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/\345\271\263\345\217\260\345\237\272\347\241\200\346\246\202\345\277\265.md" "b/docs/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/\345\271\263\345\217\260\345\237\272\347\241\200\346\246\202\345\277\265.md" index 1ba9577..5687148 100644 --- "a/docs/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/\345\271\263\345\217\260\345\237\272\347\241\200\346\246\202\345\277\265.md" +++ "b/docs/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/\345\271\263\345\217\260\345\237\272\347\241\200\346\246\202\345\277\265.md" @@ -1,130 +1,13 @@ -# 开发流程中的痛点 - -| **角色** | **场景** | **痛点** | **解决方案** | -|---------|-------------|-------------------------------------------------------------|-------------------------------------------------------------------------------------------------------| -| **架构师** | 新业务架构设计 | 1、不知道对产品的需求是否理解到位,2、不知道开发人员对与设计的执行是否到位 | 1、通过统一语言,业务流程图,领域模型图跟产品一起事件风暴,确认每一个细节都覆盖道2、由于数据模型,领域模型可生成代码,架构师只需要关注模型的正确性即可 | -| **产品** | 需求评审、原型评审之后 | 1、技术与产品脱节,2、没法对开发实现过程进行纠正,只能在验收环节才能识别 | 1、使用统一语言,业务流程图,领域模型图让产品和架构师,开发人员有了共同的语言2、模型图与代码保持双向同步,在编码发生了变化时,产品也能够通过领域模型图进行识别 | -| **开发者** | 新需求定制开发 | 1、简单的并且重复性的工作多,既浪费时间又对自身提升没有帮助2、公司标准很多,不知如何落地3、不知道对需求理解是否到位 | 1、通过领域模型,数据模型生成整个代码框架,自带了公司的标准和编码规范。2、重复性的代码都通过代码生成器生成,开发人员只需要关注业务规则以及具体的技术细节即可3、通过领域模型图与产品,架构师随时达成共识 | -| | 旧需求二次开发 | 1、产品资料分散2、需要从代码上进行反推业务逻辑,耗时耗力 | 1、领域概览图包含了领域模型图,业务流程图,领域模型图,数据模型,以及与其他领域的依赖关系。2、代码与模型图同步 | - -# 角色/场景 - -## 一、管理员 - -1. 创建`组织` -2. 创建`团队` -3. 成员、角色管理 - -## 二、产品经理 - -> 开发一个新的需求 - -1. 新增`业务域` -2. 录入`需求资料`,绘制`业务场景图` -3. 输入产品愿景、目标 -4. 预先录入`统一语言` -5. 通知其他成员,基于业务流程图主线, 进行场景分析、领域建模设计 - -> 需求验收 - -1. 查看概览图(领域图、业务流程图) -> 应用概览,业务域概览 -2. 验收 业务流程图 - -> 需求变更 - -1. ~~进行版本管理~~ -2. 重走设计流程 - -## 三、架构师 - -> 开发一个新的需求 - -1. 查看`需求资料`、`产品愿景`、`统一语言`、`业务场景图` -2. 参与`领域建模` -3. 参与`数据建模` -4. 参与`服务设计` -5. 创建`应用`并关联`业务域` - -> 设计验收 - -1. 查看`概览图`(应用概览、业务域概览...) -2. 对设计结果 review -3. 模型打分 -4. 添加评论、建议 - -> 需求变更 - -1. 进行`版本管理` -2. 重走设计流程 - -## 四、开发者 - -> 开发新需求 - -1. 参与领域建模 -2. 参与数据建模 -3. 参与服务设计 -4. 完成具体功能开发 - -> 需求变更 - -1. 参与设计 - -# 结构 - -- 组织: 组织可以对应租户、企业的概念,在组织下面可以挂靠多个团队。 -- 团队:每个团队是单一职责的,通常负责独立子领域的开发工作。 -- 业务域:可以理解为 DDD 中 ‘子域’ 的概念。也可以是**业务模块**,表示特定范围内的业务问题。在我们的开发平台中,一个业务域就是一个领域建模结果。 -- 业务场景:主要表现形式就是一个`业务流程图`,用于表示特定业务场景下,各个角色的交互行为。 -- 应用:应用可以理解为`微服务`、`限界上下文`之类的概念,这是程序运行、脚手架生成、代码同步的基本单位。**由多个业务域聚合而成 - **。 - -![](.images/20230918_1452325107.png)
- -# DDD 研发流程 - -| 分类 | 研发流程 | 子流程 | 产物 | 描述 | 角色 | -|----|---------------|--------|--------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------| -| 业务 | 需求分析 | | 产品描述文档、原型、流程图,用户故事等等 | 需求原始资料 | 产品 | -| | 领域建模(战略、战术设计) | 产品愿景分析 | 产品愿景 | 产品的顶层价值设计。目的是在产品目标上达成一致[愿景分析规范示例](https://visual-ddd.yuque.com/tp6sfc/project_doc/qi5dxirh69r7rtm9#JNnz7) | 产品+架构师+开发 | -| | | 场景分析 | 业务场景图,事件、动作、规则、主体、[统一语言](https://visual-ddd.yuque.com/tp6sfc/project_doc/qi5dxirh69r7rtm9#Dsflw)等 | 基于产品需求输入,以用户+场景/用例驱动,以[业务场景图](https://visual-ddd.yuque.com/tp6sfc/project_doc/qi5dxirh69r7rtm9#s5vBQ)``为主线,识别出各种事件、动作、规则和主体[场景分析规范示例](https://visual-ddd.yuque.com/tp6sfc/project_doc/qi5dxirh69r7rtm9#S8IUu) | | -| | | 领域建模 | 事件、命令、规则、实体、值对象、聚合、聚合根、限界上下文、[统一语言](https://visual-ddd.yuque.com/tp6sfc/project_doc/qi5dxirh69r7rtm9#Dsflw)等 | 在场景分析的输出结果之上,识别出事件、命令、实体、值对象等基础对象;找根据依存关系找出聚合根、聚合。最后将聚合根进一步分离限界上下文 如:[领域模型规范示例](https://visual-ddd.yuque.com/tp6sfc/project_doc/qi5dxirh69r7rtm9#LdBQH) | | -| | | 战术设计 | 更完备的对象模型,服务对象 | 在领域建模的基础上,对模型进行详细设计:[领域模型规范示例](https://visual-ddd.yuque.com/tp6sfc/project_doc/qi5dxirh69r7rtm9#LdBQH)- 细化实体、值对象的属性和行为、关系- 服务设计:领域服务、应用服务 | | -| 技术 | 详细设计 | 模型设计 | ER 图 | 在领域模型的基础上设计数据存储方案 [ER图示例](https://visual-ddd.yuque.com/tp6sfc/project_doc/qi5dxirh69r7rtm9#T1RsZ) | 架构师+开发 | -| | | 接口设计 | RPC、HTTP API、事件、事件监听等 | 在领域模型的基础上,设计对外交互的各种形式 | | -| | | 应用聚合 | 自动汇总对象、服务、统一语言等 ,生成上下文映射 | 将业务域(建模结果)关联到应用。应用通常可以理解为一个限界上下文、或者微服务。 将`业务场景`关联到应用。- 应用会自动汇总所有`业务域`下的对象、服务、统一语言 - 可以`业务场景图`上编辑`业务域关联` - 自动生成`上下文映射图`[应用概览图示例](https://visual-ddd.yuque.com/tp6sfc/project_doc/qi5dxirh69r7rtm9#WxxJc) | | -| | 技术评审 | 技术评审 | [评分标准](http://www.wakedata.net/pages/viewpage.action?pageId=27696169) | 对领域模型、数据模型、接口等进行评审 | 架构师,产品 | -| | 代码开发 | 代码生成 | | 脚手架的生成、代码双向同步都是以应用为单位的 | 开发 | -| | 质量检测 | 代码审核 | | code review模型图与代码的自动校验(CI) | | - -# 代码 - -![](.images/20230918_1452339378.png)
- -# 简单逻辑的生成效果 - -![](.images/20230918_1452338320.png)
- -# 原型概览 - -建模设计器 - -![](.images/20230918_1452344064.png)
- -- 需求资料: 原始需求资料 -- 产品愿景:描述业务域的目标用户、核心价值、差异化竞争点 -- 统一语言:业务域统一语言 -- 领域模型:领域模型图 -- 数据模型:ER 图 -- 查询模型:查询接口设计 -- 对象结构映射:创建领域模型、数据模型与结构对象之间的相互映射关系 - -# 术语 - -- **结构化对象**: 一般指的是没有行为的、纯粹的数据对象,比如 DTO DO。 -- **结构化对象命名规范**: 结构化对象的命名有多种规范,在惟客会使用以下规范: - - DTO - - DO - -# - +本文介绍当您在使用DDD可视化开发平台时遇到的常用名词的基本概念。 + +| **名词** | **定义** | **示例** | +|--------|--------------------------------------------------------------------------|------------------------------| +| 统一语言 | 在领域驱动设计中,统一语言指的是团队成员之间使用的共同语言,它用于描述和交流领域的概念和规则。通过使用统一语言,团队成员可以避免产生误解和混淆。 | 团队中统一使用的词汇,如“订单”、“支付”、“客户”等。 | +| 业务流程 | 业务流程是指在特定的业务场景下,按照规定的步骤和顺序对业务活动进行处理或操作的过程。 | 用户下单的流程、商品配送的流程等。 | +| 服务模型 | 服务模型是一种抽象的概念,它表示在某个领域中提供的具体功能和服务。 | 用户认证服务、订单管理服务等。 | +| 业务域 | 业务域是指在一个特定领域中,具有相似业务功能和规则的相关对象的集合。 | 电商系统中的订单域、用户域、商品域等。 | +| 领域模型 | 领域模型是一种用于描述领域对象、行为和关系的抽象模型。它通过领域专家的知识和需要来定义,用于解决特定领域中的复杂问题。 | 订单模型、用户模型、商品模型等。 | +| 数据模型 | 数据模型是根据特定的业务需求和规则,将实际业务数据抽象成逻辑结构的方式。 | 用户数据模型、订单数据模型等。 | +| 查询模型 | 查询模型是一种用于封装查询请求和查询结果的对象模型。 | 用户查询模型、订单查询模型等。 | +| 对象映射关系 | 对象映射关系是用于将不同模型对象之间的转换和映射关系的技术,包含领域对象与数据对象、数据对象与查询对象的映射。 | 将数据库中存储的订单数据映射为领域模型对象。 | +| 应用 | 应用是指实现业务逻辑和业务流程的运行模块。 | 订单管理应用、用户管理应用等。 | diff --git "a/docs/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" "b/docs/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" new file mode 100644 index 0000000..08d93b5 --- /dev/null +++ "b/docs/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" @@ -0,0 +1,59 @@ + + +
+
+ + plugin-icon + +

Visual DDD

+

欢迎探索 Visual DDD:AI助力下的领域驱动设计革命

+
+ +**** + +> “我们塑造了工具,然后工具再塑造我们。”    ——马歇尔·麦克卢汉 + +
+  在飞速发展的软件时代,你是否感到压力,渴望快速而又质量上乘的开发?Visual DDD,结合了GPT-4等前沿AI技术,为你揭示了一个全新的软件设计宇宙。 + +想象一下: +- 🚀 **无需编码即可创造领域模型**:仅通过直观的拖放,又或是与你的AI助手交谈,就可以在几分钟内构建你的领域模型。 +- 🤖 **AI不只是一个工具**:它是你的伙伴,能够理解你的需求,为你的设计提供实时建议,并帮助你持续优化。 +- 🌟 **始终保持团队同步**:无论是设计还是实现,AI驱动的自动同步将确保每个人都在同一页上,大大提高团队的协同效率。 +- 💡 **高效的不仅仅是速度**:利用AI的深度分析,Visual DDD将为你的软件质量和稳定性注入强大的动力。 +- 🎓 **领域驱动设计从未如此简单**:即使你是初学者,Visual DDD都能让你如鱼得水,轻松驾驭。 + +**这一刻,让我们一起跨入未来**:拥抱AI,释放你的创造力,用Visual DDD为你的软件设计注入无限可能! + +**迈出第一步**: + +- 🌐 探索由 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,而更多的语言版本也即将到来! \ No newline at end of file diff --git "a/docs/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" "b/docs/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" index 8a3934c..cfd155e 100644 --- "a/docs/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" +++ "b/docs/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" @@ -1 +1,3 @@ -# 快速入门 \ No newline at end of file +# 快速入门 + +[部署文档](快速入门/部署文档.md) \ No newline at end of file diff --git "a/docs/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" "b/docs/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" new file mode 100644 index 0000000..e3fe5cc --- /dev/null +++ "b/docs/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" @@ -0,0 +1,42 @@ +# visual-ddd-docker +GitHub地址:[Docker部署DDD可视化开发者平台](https://github.com/visual-ddd/visual-ddd-docker) + +## 准备工作 + +在开始部署之前,请确保已完成以下准备工作: + +1. 安装Docker和Docker Compose:确保你的服务器已安装了Docker和Docker Compose。如果尚未安装,请按照官方文档进行安装。 + +2. 拉取项目:通过git拉取本项目到部署环境下。 + +## 部署步骤 + +1. 进入项目目录:使用命令行工具进入项目所在的目录。 + +2. 请根据项目的要求进行相应的修改,例如修改端口号、添加环境变量等。 + +3. 构建和启动容器:运行以下命令来构建和启动项目容器: + +``` +docker-compose up -d +``` + +4. 验证部署:等待一段时间后,可以通过访问服务器的IP地址或域名来验证项目是否成功部署。如果一切正常,应该能够看到项目的首页或相关页面。 + +5. 停止和清理容器:如果需要停止和清理容器,可以运行以下命令: + +``` +docker-compose down +``` + +## 注意事项 + +- 请确保服务器的防火墙已经打开了所需的端口,以便能够从外部访问项目。 + +- 如果项目需要使用数据库等外部服务,请确保这些服务已经正确地配置,并能够在项目容器中访问到。 + +- 如果项目有特殊的依赖项或配置要求,请根据实际情况进行相应的调整。 + +- 在部署过程中,如果出现任何错误或问题,请参考Docker和Docker Compose的官方文档进行故障排除。 + +希望以上部署说明对你有帮助!如有任何疑问,请随时向我提问。 diff --git a/docs/index.md b/docs/index.md index db1f108..d46b044 100644 --- a/docs/index.md +++ b/docs/index.md @@ -10,7 +10,7 @@ hero: actions: - theme: brand text: 开始使用 - link: /base/install + link: /base/product/DDD可视化开发平台文档/产品概述/欢迎使用Visual-DDD.md features: - title: 架构设计可视化 details: 标准化架构设计流程和设计组件。通过托拉拽的方式来进行架构设计,使开发人员能够更直观的理解和管理系统,更容易识别代码间的依赖关系