ApiTemplate:.net后端項目模板完善與總結


      ApiTemplate后端項目開發模板,發布也有一段時間了。為了補充應用場景,以及詳細說明本人總結的一些開發經驗,現已常見的《用戶/登錄權限驗證》功能模塊來進行詳細的講解。我會以為開發此模擬的實現路徑為主線進行說明,希望能幫助到某些開發朋友。

一、模塊分解

image

模塊分析是按照《C4-架構圖》理念做的,主要分為

1. 系統上下文:顯示當前構建的系統與現有系統的依賴關系,從宏觀視角看

2. 容器:將當前構建的系統放大,顯示出系統的 應用程序、數據存儲、微服務等信息

3. 組件:放大單個《容器》后,顯示其容器內部的組件列表、及關系。

4. 代碼:放大單個《組件》后,顯示其實現細節

注意:

1. 更正說明:上圖中的《容器》應該改為《組件》,根據《C4-架構圖》的定義,使用《組件》更貼切,因為想表達的是《登錄/權限》模擬的子組件列表

2. 登錄驗證/在線用戶管理:此兩個組件為業務核心組件,設計與實現時要重點考慮

3. 獲取用戶/獲取資源/角色:此兩個組件主要從第三方系統獲取數據,要考慮使用工廠模式進行策略切換。

二、核心代碼

image

1. 上圖表示IOnlineUserMgr接口的實現類應有的依賴,IOnlineUserMgr規范《在線用戶管理》,包含添加在線用戶、自動移除超時過期的用戶等。

2. IReadAuthRepository/IRoleAndResDepend:規范對用戶、資源、角色的依賴。對應《獲取用戶》、《獲取資源/角色》組件

3. ITokenRepository:登錄用戶持久化,相當於用戶登錄記錄

4. IUserEntity:用戶實例規范,對應《登錄驗證》,提供資源、權限驗證等相關接口

5. IUserEntiy和IOnlineUserMgr的接口實現在領域實現層(BAccurate.Implement項目)中,這樣便從結構上對 業務領域組件 和 其他依賴組件進行了解耦。

6. 具體的代碼實現可以移步至github地址,代碼太多不方便博客文章展示

三、視頻分享

B站視頻介紹:https://www.bilibili.com/video/BV1Rz4y1Q7XY/,有興趣小伙伴可以觀看喲Winking smile

四、經驗總結

1. 通過《C4-架構圖》對系統從宏觀->微觀的逐步細化

2. 業務領域組件應該要高內聚

3. 對依賴組件要低耦合

4. 不急着進行數據庫設計,先梳理好業務領域組件之間關系,以及核心業務實現。

5. 數據庫存儲實體與領域實體強分隔,這樣更能做好業務變更與升級。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM