多後端系統的模組劃分方案
問題
例:我要做一個多後端2d圖形庫,後端有vulkan,opengl、directx等,那麼這個圖形庫如何劃分模組?
方案一:不劃分模組
不劃分模組,所有東西統統塞進一個模組裡
優點
- 直接秒殺一切模組劃分問題,哪管那麼多的瑣碎破事
- 瑞士軍刀
缺點
- 使用時,模組含有過多冗餘功能,導致強迫症不適
- 肥
適用範圍
- 適用於輕量級系統,輕到覺得劃分模組很傻x的那種系統
- 適用於懶得劃分模組的專案
方案二:Core、Share、Impl三層模組
Core模組:排程中樞
Core模組引用Share模組和所有的Impl模組,實現了對各類Impl的集中統一管理,是整個系統的面向使用者的排程中樞,使用者通過安裝Core模組便可立即使用類庫
Share模組:公用介面
Share模組作為各類Impl都要使用的內容,一般盛放公用介面等內容
Impl模組:詳細實現
Impl模組是各種功能的分離實現,一個系統含有多個Impl模組,每一個Impl模組實現一種後端
優點
- 精準劃分,強迫症十分舒適
- 瘦
缺點
- 模組多,不便於管理
適用範圍
- 適用於重量級系統,重到覺得不劃分模組很傻x的那種系統
- 適用於“分許多模組能帶來快感”的群體
Share模組和Core模組功能類似,為什麼不把他倆合併呢?
Share模組包含Impl模組的公用介面,Impl引用Share模組
Core模組是所有實現的排程中心,引用所有Impl模組
如果Share模組和Core模組合併,那麼Core引用Impl,Impl又引用Share,Share和Core還是一個東西,就會造成迴圈引用。編譯Core的時候就會去先編譯Impl,編譯Impl又需要編譯完Core做前提,無限迴圈,導致專案無法正常編譯
相關文章
- 系統模組劃分設計的思考
- 後臺管理系統CMS模組-後端實現後端
- 前後端分離後模組開發後端
- 將maven專案劃分為多個模組Maven
- iOS應用模組化的思考及落地方案(一)模組的劃分及模組化工作流程iOS
- OA系統模組設計方案
- JAVA oa 系統模組設計方案Java
- OA 系統原始碼模組設計方案原始碼
- java 考試系統 模組架構方案Java架構
- JAVA 考試系統模組設計方案Java
- ModStartCMS 基於 Laravel 模組化組織的後臺系統框架Laravel框架
- OA 辦公管理系統模組 設計方案
- JAVA oa 辦公系統模組 設計方案Java
- java OA 辦公系統 模組設計方案Java
- 基於 ThinkPHP6 開發的模組化前後臺分離管理系統PHP
- Docker:Docker部署Jenkins並共用宿主機Docker部署微服務多模組(二)構建微服務後端多模組DockerJenkins微服務後端
- 自動駕駛系統的決策規劃模組介紹自動駕駛
- Android模組化與元件化–多模組區分編譯Android元件化編譯
- Laravel Vue 前後端分類模組化外掛化開發疑惑LaravelVue後端
- 開發一個大型後臺管理系統,應該用前後端分離的技術方案嗎?後端
- javascript中的模組系統JavaScript
- SpringBoot+Vue前後端分離系統搭建Spring BootVue後端
- 如何繫結多個後臺模組
- Java 9 的模組(Module)系統Java
- ABP之模組系統
- JS模組化系統JS
- 軟體架構之前後端分離與前端模組化發展史架構後端前端
- 前後端分離前端模擬資料後端前端
- CRM系統的功能模組有哪些
- springboot 後臺管理模組架構設計方案Spring Boot架構
- ASP.NET Core模組化前後端分離快速開發框架介紹之4、模組化實現思路ASP.NET後端框架
- Laravel8.x+Vue+AntDesign前後端分離後臺管理系統LaravelVue後端
- Python 常用系統模組整理Python
- Node.js模組系統Node.js
- java 網路考試 線上教育系統 模組設計方案Java
- 基於 hyperf,vuetify,casbin 開發的前後端分離管理系統Vue後端
- 基於 Spring Security 的前後端分離的許可權控制系統Spring後端
- 最全的前端模組化方案前端