目前移動端應用市場已是百花齊放,不少獨角獸公司都是經過App創業發展起來的,如今App類型更加豐富,功能愈來愈完善,基本上涵蓋了各個行業的每一個角落。爲了開發出更加有競爭力的App,不只須要功能上有創新,內容也須要更加多元化,這樣就出現了相對巨大的工程。這些工程代碼不停添加,若是沒有一個好的架構,那麼全部代碼都會強耦合在一塊兒,功能之間也會出現不少依賴,那麼就會出現不少問題,例如:api
一、修改功能困難,牽一髮動全身。不少地方若是api寫的很差,封裝不優雅,那麼就會出現改一個地方須要改不少地方的調用。
二、更新迭代工做中冗餘廢棄代碼資源過多形成刪除冗餘變得很複雜,而且極可能出現不少bug。
架構
爲了解決上述的問題,通過長時間摸索和發展,當今已經有至關成熟的方案來保證儘可能避免上述問題的出現。而架構就是爲此而生的概念,架構在實際開發中又分爲代碼架構和項目架構。其中:模塊化
一、代碼架構主要分爲三類:MVC、MVP 和 MVVM。組件化
二、項目架構主要分爲:單工程模式、模塊化、組件化、插件化。插件
如圖所示:blog
架構的核心思想:分層 和 通訊。進程
除了常見的common部分抽離, 業務模塊的劃分尤其重要,相比於狹義上的架構,廣義上的子系統的劃分的關注點,很考驗技術經驗以及對業務的理解。資源
模塊化的通訊方式,無非是相互引入;抽取出來了common模塊, 其餘模塊使用天然要引入這個module
組件化的通訊方式,按理說能夠劃分爲多種,主流的是隱式和路由。隱式的存在使解耦與靈活大大下降,所以路由是主流。
插件化的通訊方式,不一樣插件自己就是不一樣的進程了。所以通訊方式偏向於Binder機制相似的進程間通訊。
路由