当前位置: 首页 > news >正文

领域驱动设计(DDD)【2】之项目启动与DDD基本开发流程

文章目录

  • 一 项目背景与目标
  • 二 核心需求分析
    • 初步需求详细分析
    • 需求总结表
  • 三 DDD核心概念与开发流程
    • 领域和领域专家
    • 领域驱动设计开发流程
  • 四 潜在扩展需求

一 项目背景与目标

  1. 项目定位

    • 开发基于SaaS的企业管理系统,聚焦软件服务企业的细分市场,功能需求包括工时管理、考勤管理、项目管理、请加管理等核心功能。
    • 采用多租户架构,支持企业按需付费使用,降低客户运维成本。
  2. 迭代规划

    • 分三个阶段迭代开发,逐步扩展需求复杂性和灵活性。
    • 迭代一目标:实现最小闭环功能,覆盖从需求分析到代码实现的完整流程。

二 核心需求分析

  • 领域(Business Domain)/业务领域指的是软件要解决的那些业务问题。在本例里, “企业管理”就是要处理的领域
  • 在领域驱动设计中“领域专家”(业务专家),需要对业务有总体性和本质性的把握,同时对业务发展也要有一定前瞻性。
    在很多企业中领域专家是多年业务经验中级管理干部或者是产品经理。

初步需求详细分析

  • 目前项目的初步需求如下:
  1. 租户管理:支持租户(企业客户)的增删改查,确保数据隔离。

  2. 人员与组织管理:支持部门层级管理(如开发中心、开发组、直属部门)。员工管理:增删改查功能,且员工需归属至单一部门。

  • 人员和组织结构图:
    在这里插入图片描述
  1. 项目管理
    • 客户管理:租户可维护其客户列表,每个客户分配客户经理。
    • 合同管理:支持合同增删改查,关联销售负责人及起止时间。
    • 项目管理:合同下可创建多个项目,分配项目经理,记录项目周期。

  • 客户、合同、项目的关系图:
    在这里插入图片描述
  1. 人员分配
    • 支持员工跨项目分配,记录预计投入时间百分比。
    • 目标:优化人力资源调配,实现利用率最大化。
  • 人员和项目将投入的关系:
    在这里插入图片描述
  1. 工时登记
    • 仅允许已分配至项目的员工登记工时。
    • 功能:按周填报每日工时,支持修改及备注。
  • 工时登记的界面原型
    在这里插入图片描述

需求总结表

在这里插入图片描述

三 DDD核心概念与开发流程

领域和领域专家

  1. 领域与领域专家
    • 领域定义:系统解决的业务问题(如“企业管理”)。
    • 领域专家角色:由资深业务人员或产品经理担任,负责业务本质的抽象与前瞻性规划。

领域驱动设计开发流程

  1. 开发流程
    • 模型建立阶段
      • 行为需求捕获:通过事件风暴(替代传统用例建模)识别功能流程。
      • 领域建模:用业务语言构建模型,业务专家参与评审。
    • 模型实现阶段
      • 架构设计:包括微服务(进程间)和DDD分层架构(进程内)。
      • 数据库设计与代码实现:将领域模型转化为技术方案。

  • 领域驱动设计主要的开发流程:
    在这里插入图片描述
  1. 流程特点
    • 非线性的敏捷迭代:各步骤反复穿插,以领域模型为核心驱动。
    • 业务与技术边界明确:模型建立阶段禁用技术术语,确保业务可理解性。

四 潜在扩展需求

  1. 安全性:用户认证与权限控制(如角色基于访问权限)。
  2. 扩展性:支持动态字段以满足行业差异化需求。
  3. 数据分析:工时利用率报表、资源负载预测等高级功能。

相关文章:

  • AtCoder AT_abc411_c [ABC411C] Black Intervals
  • 多头注意力机制中全连接函数
  • 阿里云ACP认证-数据仓库
  • 如何优化HarmonyOS 5的分布式通信性能?
  • day44-硬件学习之arm启动代码
  • 3D可视化数字孪生智能服务平台-物联网智控节能控、管、维一体化技术架构
  • Shell编程中的Ansible常用模块
  • Rust 和 R 语言的十大应用领域
  • springboot口腔管理平台
  • 2025.6.21笔记
  • `provide` 和 `inject` 组件通讯:实现跨组件层级通讯
  • 成长笔记——多串口发送与接收
  • 企业公用电脑登录安全管控的终极方案:ASP操作系统安全登录管控方案
  • 编程基础:耦合
  • JVM(8)——详解分代收集算法
  • 无线Debugger攻防全解:原理剖析与突破之道
  • 个人博客使用NextWatermark WordPress插件为网站图片自动批量添加水印,保护图片版权
  • 【软考高级系统架构论文】论云上自动化运维及其应用
  • 【环境配置】在Ubuntu Server上安装5090 PyTorch环境
  • 【Linux-shell】探索Dialog 工具在 Shell 图形化编程中的高效范式重构
  • wordpress百度小程序/北京seo关键词排名
  • 武汉科技职业学院有哪些专业/seo教学培训
  • 重庆做网站 外包公司/百度搜索软件
  • 怎么替换网站模板/如何快速推广网站
  • b2b网站用户注册流程/google play官网入口
  • qq刷赞网站怎么做的/宁波网站优化公司电话