文章出處
文章列表
Sangmado(發音 /sɔŋmɑːdu:/ ‘桑麻渡’)涵蓋了支撐 .NET/C# 項目開發的最基礎的公共類庫,為團隊在不斷的系統開發和演進過程中發現和積累的最公共的代碼可復用單元。
Sangmado 公共類庫設計原則:
- 獨立性:不與任何業務框架或業務應用耦合;
- 依賴性:最小化外部類庫依賴,選擇最穩定的依賴庫版本;
- 分離性:關注點分離,滿足 Separation of Concerns;
- 兼容性:通過 x.y.z 版本號控制兼容性;
- 易用性:發布 nuget 包,可在任意環境使用;
- 開源性:使用 GitHub 代碼管理,PR 開發流程;
Sangmado 公共基礎類庫功能
使用 Inka 子名稱,意為 Infrastructure,為各種項目打造公共基礎設施。
Sangmado 公共框架類庫功能
使用 Fida 子名稱,意為 Framework,嘗試為服務提供框架基礎。
內部服務架構設計指導原則
- 領域間定義明確的邊界,邊界僅提供 HTTP 或 MOM 交互,不能使用 RPC 等其他交互方式,為語言異構提供基礎,例如使用 Sangmado 中的 MomBrokers 封裝;
- 領域邊界對外提供 Contract 服務契約,其他領域使用該 Contract 理解該領域的模型,Contract 定義語言無關,例如使用 Sangmado 中的 Json 或 Protobuf 封裝和解析;
- 領域邊界 Contract 可發布至內部 nuget 服務器,供其他領域服務引用;
- 領域內服務可選擇任意交互機制,Socket、RPC、HTTP、MOM 無限制;
- 領域內 Common 類庫,如果為可復用代碼,可提升到 Sangmado 公共類庫中;
通用功能性類庫
- Cowboy.Sockets 基于 TCP Socket 的通用類庫;
- Cowboy.WebSockets 提供 WebSocket 支持;
- Redola.Rpc 基于 TCP Socket 封裝的 RPC 通信框架;
- Happer.Http 支持 Self Host 的 HTTP 服務器;
- Issuna 通用業務 ID 發號器;
- Logrila 抽象 Log 日志接口,與具體的 Log 框架分離;
版權聲明:本篇文章《Sangmado 公共基礎類庫》由作者 Dennis Gao 發表自博客園個人技術博客,未經作者本人同意禁止以任何的形式轉載,任何自動的或人為的爬蟲轉載行為均為耍流氓。
文章列表
全站熱搜