ApiTemplate後端項目開發模板,發佈也有一段時間了。爲了補充應用場景,以及詳細說明本人總結的一些開發經驗,現已常見的《用戶/登陸權限驗證》功能模塊來進行詳細的講解。我會覺得開發此模擬的實現路徑爲主線進行說明,但願能幫助到某些開發朋友。git
模塊分析是按照《C4-架構圖》理念作的,主要分爲github
1. 系統上下文:顯示當前構建的系統與現有系統的依賴關係,從宏觀視角看數據庫
2. 容器:將當前構建的系統放大,顯示出系統的 應用程序、數據存儲、微服務等信息後端
3. 組件:放大單個《容器》後,顯示其容器內部的組件列表、及關係。架構
4. 代碼:放大單個《組件》後,顯示其實現細節數據庫設計
注意:ide
1. 更正說明:上圖中的《容器》應該改成《組件》,根據《C4-架構圖》的定義,使用《組件》更貼切,由於想表達的是《登陸/權限》模擬的子組件列表微服務
2. 登陸驗證/在線用戶管理:此兩個組件爲業務核心組件,設計與實現時要重點考慮設計
3. 獲取用戶/獲取資源/角色:此兩個組件主要從第三方系統獲取數據,要考慮使用工廠模式進行策略切換。視頻
1. 上圖表示IOnlineUserMgr接口的實現類應有的依賴,IOnlineUserMgr規範《在線用戶管理》,包含添加在線用戶、自動移除超時過時的用戶等。
2. IReadAuthRepository/IRoleAndResDepend:規範對用戶、資源、角色的依賴。對應《獲取用戶》、《獲取資源/角色》組件
3. ITokenRepository:登陸用戶持久化,至關於用戶登陸記錄
4. IUserEntity:用戶實例規範,對應《登陸驗證》,提供資源、權限驗證等相關接口
5. IUserEntiy和IOnlineUserMgr的接口實如今領域實現層(BAccurate.Implement項目)中,這樣便從結構上對 業務領域組件 和 其餘依賴組件進行了解耦。
6. 具體的代碼實現能夠移步至github地址,代碼太多不方便博客文章展現
B站視頻介紹:https://www.bilibili.com/video/BV1Rz4y1Q7XY/,有興趣小夥伴能夠觀看喲。
1. 經過《C4-架構圖》對系統從宏觀->微觀的逐步細化
2. 業務領域組件應該要高內聚
3. 對依賴組件要低耦合
4. 不急着進行數據庫設計,先梳理好業務領域組件之間關係,以及核心業務實現。
5. 數據庫存儲實體與領域實體強分隔,這樣更能作好業務變動與升級。