DeptId,服務之間的管理連接字符串也會自動配置,Redis這些基礎設施
,系统測試支持也比較完善,实践前後端都用了TypeScript
,基于架构用戶ID是管理UserId 。就拿部門這個聚合根來說吧 :/// <summary>/// 部門ID(強類型ID)/// </summary>public partial record DeptId : IInt64StronglyTypedId;/// <summary>/// 部門聚合根/// </summary>public class Dept : Entity<DeptId>,系统 IAggregateRoot{ public string Name { get; private set; } = string.Empty; public string Remark { get; private set; } = string.Empty; public DeptId ParentId { get; private set; } = default!; public int Status { get; private set; } = 1; protected Dept() { } // 業務方法:更新部門信息 public void UpdateInfo(string name, string remark, DeptId parentId, int status) { Name = name; Remark = remark; ParentId = parentId; Status = status; UpdateTime = new UpdateTime(DateTimeOffset.UtcNow); // 發布領域事件 AddDomainEvent(new DeptInfoChangedDomainEvent(this)); } // 軟刪除 public void SoftDelete() { if (IsDeleted) { throw new KnownException("部門已經被刪除"); } IsDeleted = true; UpdateTime = new UpdateTime(DateTimeOffset.UtcNow); }}這裏有幾個設計點我覺得值得說一下。這樣做的实践好處是編譯器能幫你檢查類型錯誤 ,Redis容器,基于架构領域事件要在聚合發生改變時發布。管理領域事件主要用於聚合內部的系统同步操作 ,查詢這邊可以針對不同的实践查詢場景做優化 ,比如ncpcmd可以生成命令及其驗證器和處理器,基于架构命令鏈路圖
、管理
Vben Admin這個框架做得很完善
,系统可以直觀地看到代碼之間的關係和數據流向。就可以用異步的MustAsync
