領域驅動設計(DDD)【2】之項目啟動與DDD基本開發流程

文章目錄

  • 一 項目背景與目標
  • 二 核心需求分析
    • 初步需求詳細分析
    • 需求總結表
  • 三 DDD核心概念與開發流程
    • 領域和領域專家
    • 領域驅動設計開發流程
  • 四 潛在擴展需求

一 項目背景與目標

  1. 項目定位

    • 開發基于SaaS的企業管理系統,聚焦軟件服務企業的細分市場,功能需求包括工時管理、考勤管理、項目管理、請加管理等核心功能。
    • 采用多租戶架構,支持企業按需付費使用,降低客戶運維成本。
  2. 迭代規劃

    • 分三個階段迭代開發,逐步擴展需求復雜性和靈活性。
    • 迭代一目標:實現最小閉環功能,覆蓋從需求分析到代碼實現的完整流程。

二 核心需求分析

  • 領域(Business Domain)/業務領域指的是軟件要解決的那些業務問題。在本例里, “企業管理”就是要處理的領域
  • 在領域驅動設計中“領域專家”(業務專家),需要對業務有總體性和本質性的把握,同時對業務發展也要有一定前瞻性。
    在很多企業中領域專家是多年業務經驗中級管理干部或者是產品經理。

初步需求詳細分析

  • 目前項目的初步需求如下:
  1. 租戶管理:支持租戶(企業客戶)的增刪改查,確保數據隔離。

  2. 人員與組織管理:支持部門層級管理(如開發中心、開發組、直屬部門)。員工管理:增刪改查功能,且員工需歸屬至單一部門。

  • 人員和組織結構圖:
    在這里插入圖片描述
  1. 項目管理
    • 客戶管理:租戶可維護其客戶列表,每個客戶分配客戶經理。
    • 合同管理:支持合同增刪改查,關聯銷售負責人及起止時間。
    • 項目管理:合同下可創建多個項目,分配項目經理,記錄項目周期。

  • 客戶、合同、項目的關系圖:
    在這里插入圖片描述
  1. 人員分配
    • 支持員工跨項目分配,記錄預計投入時間百分比。
    • 目標:優化人力資源調配,實現利用率最大化。
  • 人員和項目將投入的關系:
    在這里插入圖片描述
  1. 工時登記
    • 僅允許已分配至項目的員工登記工時。
    • 功能:按周填報每日工時,支持修改及備注。
  • 工時登記的界面原型
    在這里插入圖片描述

需求總結表

在這里插入圖片描述

三 DDD核心概念與開發流程

領域和領域專家

  1. 領域與領域專家
    • 領域定義:系統解決的業務問題(如“企業管理”)。
    • 領域專家角色:由資深業務人員或產品經理擔任,負責業務本質的抽象與前瞻性規劃。

領域驅動設計開發流程

  1. 開發流程
    • 模型建立階段
      • 行為需求捕獲:通過事件風暴(替代傳統用例建模)識別功能流程。
      • 領域建模:用業務語言構建模型,業務專家參與評審。
    • 模型實現階段
      • 架構設計:包括微服務(進程間)和DDD分層架構(進程內)。
      • 數據庫設計與代碼實現:將領域模型轉化為技術方案。

  • 領域驅動設計主要的開發流程:
    在這里插入圖片描述
  1. 流程特點
    • 非線性的敏捷迭代:各步驟反復穿插,以領域模型為核心驅動。
    • 業務與技術邊界明確:模型建立階段禁用技術術語,確保業務可理解性。

四 潛在擴展需求

  1. 安全性:用戶認證與權限控制(如角色基于訪問權限)。
  2. 擴展性:支持動態字段以滿足行業差異化需求。
  3. 數據分析:工時利用率報表、資源負載預測等高級功能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85690.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85690.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85690.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度融合數智化,百勝軟件聯合華為云加速零售行業轉型升級

當前,企業數字化轉型縱深推進,滿足企業數智化全階段、全場景的需求變得尤為關鍵。為此,華為云攜手上萬家伙伴共同發起第三屆828 B2B企業節,依托云底座為企業數智化供需“架橋”“鋪路”,加速企業智改數轉,助…

《HTTP權威指南》 第4章 連接管理

帶著問題學習(通常是面試考點) HTTP是如何使用TCP連接的TCP連接的時延、瓶頸及存在的障礙HTTP的優化,包括并行連接、keep-alive(持久連接)和管道化連接管理連接時應該和不應該做的事 TCP連接 TCP的數據通過IP分組&am…

StartUML入門級使用教程——畫Class類圖

一、破解安裝StartUML StarUML建模工具最新版破解安裝詳細教程https://blog.csdn.net/m0_74146638/article/details/148709643?spm1001.2014.3001.5502 二、類圖實戰 1.主界面 ? 默認打開starUML后,會默認進入類圖模式,各模塊區域功能如下&#x…

中科億海微SoM模組——FPGA+DSP核心板

FPGADSP核心板是基于中科億海微EQ6HL130型FPGA芯片搭配國產DSP開發的高性能核心板卡。對外接口采取郵票孔連接方式,可以極大提高信號傳輸質量和焊接后的機械強度。核心板卡的系統框圖如下圖所示。 圖 FPGADSP核心板系統框圖 FPGA采用中科億海微136K LUT資源EQ6HL130…

CentOS 7 虛擬機網絡配置異常 典型問題:啟動了NetworkManager但是network無法啟動

問題背景 在 VMware 虛擬機中使用 CentOS 7 時,出現以下網絡問題: 命令行重啟網絡服務失敗,提示 RTNETLINK answers: File exists 等沖突錯誤圖形界面網絡設置無法打開,提示需要啟動 NetworkManager網卡 ens33 無法獲取 IPv4 地…

細節/數學/滑動窗口

題目意思: 判斷字符串是否可以按照題目條件縮短。 思路: 用棧的思想寫,對每一次的大小寫都進行滾動判斷。 tips: 這里面要注意的東西就有一點多了,首先是字符串的遍歷問題auto更方便,其次是對小寫和大…

WebeServer實現:學到了哪些東西

前言 這里話就是總結一下之前沒講過的一些東西 系統調用 accept與accept4 ??當我們調用accept接收一個新的fd的時候,往往需要在調用fcntl將這個fd變成非阻塞IO,那么有沒有一個系統調用可以一次性做完這兩件事呢,有的有的就是accept4. // accept 函數…

React 虛擬dom

JSX創建出ReactElement對象 最終形成一個JS樹 將React.createElement對象轉為真實DOM的方法使用render函數 為什么要虛擬 dom 狀態難以跟蹤 ## 操作真實dom開銷大 ,并且操作會引起頻繁的回流和重繪,并且不涉及批處理 聲明式編程 從虛擬dom向真實dom去…

Spring MVC異常處理機制

Spring MVC提供了多種異常處理機制,以下是核心處理方式及實現方法: 一、局部異常處理(Controller級別) @ExceptionHandler注解 在Controller內部定義異常處理方法,捕獲當前控制器拋出的指定異常。@Controller public class UserController {@GetMapping("/test"…

MySQL 8.x配置MGR高可用+ProxySQL讀寫分離(一):MGR構建MySQL高可用

#作者:stackofumbrella 文章目錄 簡介MGR優點MGR缺點MGR適用場景單主模式和多主模式組復制介紹組復制插件架構圖單主模式多主模式配置主機名解析安裝MGR插件 MGR故障轉移恢復MGR集群 簡介 MGR(MySQL Group Replication)是MySQL 5.7.17版本誕…

保安員證考試的理論知識部分,重點考查的法律法規具體有哪些?

保安員證考試理論知識部分,重點考查的法律法規主要有以下幾種: 《保安服務管理條例》:作為保安行業的專門法規,是考試核心。重點考查保安服務活動規范,如保安服務的范圍、資質要求等;保安員的權利與義務&am…

【好用但慎用】Windows 系統中將所有 WSL 發行版從 C 盤遷移到 非系統 盤的完整筆記(附 異常處理)

🚀 將所有 WSL 發行版從 C 盤遷移到 I 盤的完整教程(含 Podman / NVIDIA Workbench / Ubuntu 等) 【無標題】使用 Chocolatey 安裝 WSL 管理工具 LxRunOffline-CSDN博客 免責聲明 重要提示 在執行 WSL 遷移操作前,請務必仔細閱讀…

Oracle APEX 通過rtf模板下載PDF文件(BIP)

1. 上傳模板文件 共享組件 > 報表布局 2. 編寫SQL文 共享組件 > 報表查詢 報表布局中選擇1中設置完的報表布局,然后編寫SQL文提供數據 3. 添加下載按鈕 在頁中添加一個下載按鈕,添加動態操作,選擇打印報告 4. 下載PDF文件 點擊Pri…

Web Seach 搜索 MCP 啟動!

🚀 開啟你的 AI 助手搜索能力!開源 Web 搜索 MCP 服務器上線! 在 ChatGPT、Claude 等 AI 工具成為生產力新核心的今天,我們往往面臨一個尷尬的問題:模型不知道最新的網絡信息。雖然 GPT-4o 和 Claude 支持聯網功能&am…

005微信小程序npm包_全局數據共享和分包

npm包_全局數據共享和分包 1. 使用npm包1.1 Vant Weapp1.2 API Promise化 2. 全局數據共享3. 分包3.1 分包的加載規則3.2 分包的體積限制3.3 使用分包3.3 獨立分包3.4 分包預下載 1. 使用npm包 小程序對npm進行了支持與限制,限制如下: 不支持依賴于 No…

DPO直接偏好函數的學習解讀

DPO, Direct Preference Optimization,采用直接優化策略滿足人類偏好,使得LLM對于給定輸入,生成能用輸出的概率高于生成不能用輸出的概率。 1)DPO優化目標 在DPO訓練過程中,模型通過最大化可用回答相對于不可用回答的…

【開源初探】基于 Qwen2.5VL的文檔解析工具:docext

源碼地址: https://github.com/NanoNets/docext 概述 docext 是一個由視覺語言模型(vlm)提供支持的全面的本地文檔智能工具包。vlm 使用的是基于 Qwen2.5VL-3B 的模型,應該是在此模型基礎上進行的微調。 它提供了三個核心功能&…

Python 正確重載運算符(增量賦值運算符)

增量賦值運算符 Vector 類已經支持增量賦值運算符 和 * 了,如示例 13-15 所示。 示例 13-15 增量賦值不會修改不可變目標,而是新建實例,然后 重新綁定 >>> v1 Vector([1, 2, 3]) >>> v1_alias v1 # ? >>> …

XCUITest + Objective-C 詳細示例

??親愛的技術愛好者們,熱烈歡迎來到 Kant2048 的博客!我是 Thomas Kant,很開心能在CSDN上與你們相遇~?? 本博客的精華專欄: 【自動化測試】 【測試經驗】 【人工智能】 【Python】

redis分布式鎖 Redisson在電商平臺開發中的實際應用

目錄 概述 Redis分布式鎖的實現方式 1. 基于SETNX命令(String類型) 2. 使用SET命令的NX和EX參數(推薦方式) 3. 基于Lua腳本實現復雜邏輯 4. RedLock算法(多節點Redis實現) Redisson的分布式鎖 Redis…