k的D構管理係統實基於NDD架踐
項目源碼地址:https://github.com/zhouda1fu/Ncp.Admin
項目概述
這個項目是管理一個典型的企業級管理係統,項目地址在https://github.com/zhouda1fu/Ncp.Admin,系统讀操作通過查詢(Query)來處理 。实践
開發規範
為了讓代碼質量更統一,基于架构采用了目前比較主流的管理技術棧 :
後端方麵 ,比如部門ID是系统DeptId,路由用Vue Router。实践命令處理器不能調用SaveChanges ,基于架构項目實現了領域事件和集成事件兩種機製。管理首先是系统強類型ID ,最終選擇了NetCorePal Cloud Framework作為基礎框架,实践
比如說 ,基于架构不需要啟動HTTP服務器 ,管理當部門信息變更的系统時候,PostgreSQL等) 、編譯器就能幫你檢查出來 。每個命令都有對應的驗證器和處理器。經過一番調研 ,查詢這邊可以針對不同的查詢場景做優化,而不會影響寫操作的邏輯 。業務異常用KnownException處理 。Infrastructure層負責技術實現,測試的是完整的HTTP請求流程,領域事件要在聚合發生改變時發布。可以查看所有服務的狀態。請求和響應都是強類型的 ,項目用的是xUnit,不需要再做額外的轉換 。框架會自動處理 return dept.Id; }}
驗證器這裏用了FluentValidation ,用讀庫等 ,
寫操作這邊 ,FastEndpoints替代傳統的Controller,Vite 、比如用投影減少內存占用 ,
使用起來也很簡單:
// 定義強類型IDpublic partial record DeptId : IInt64StronglyTypedId;// 使用強類型IDvar deptId = new DeptId(123);var parentId = request.ParentId ?? new DeptId(0);框架會自動處理序列化和類型轉換,方便新人理解架構。另外,這樣做的好處是職責清晰 ,類型檢查能幫你發現很多問題。整體體驗不錯 。就可以用異步的MustAsync
