元件化開發瞭解一下?

CaptainZ發表於2018-05-12

1.什麼是元件化

談一談我的想法:元件化是模組化思想的一種實現方案,其主要是通過依賴module的方式,解耦程式碼。模組之間依賴很小,主要通過路由進行通訊。

2.為什麼要進行元件化?

  • 對於我個人來說,在長期的開發過程中存在幾個常見問題:
    1. 新開了專案還要新建工程,或者複製以前工程進行修改,要麼無法有效複用程式碼,要麼產生大量冗餘程式碼
    2. 專案耦合度高,在編寫程式碼的時候開發人員經常會改動別人的模組
    3. 專案龐大,漫長的編譯時間

3.理想的元件化實踐

  • 在元件化的實踐道路上,我也不是憑空想象,也參閱過很多文章,發現大家的目標基本一致:
  • 模組之間解耦,通過路由進行通訊
  • 模組可以單獨編譯,也可以和其他模組一起編譯

4.我的元件化實踐示意圖

元件化示意圖.png

各個模組功能簡介
1. app-module 基本是以初始化專案引數為主,原則上只有splash頁面,或者不包含任何ui相關的程式碼
2. sdk-module 是用來向業務module(app,login,a,b)提供通用程式碼塊的module:
    1. res-module 主要用來存放專案所用的資原始檔
    2. utils-module 提供通用的工具類
    3. ui-module  提供ui 相關的元件庫
    4. javabean   提供專案開發所需要的實體類
3. login-module  登入模組對於大多數app來說都要單獨分離出來,主要是因為我在實際開發中,大多數請求都需要我們向服務端傳遞token,以及一些使用者資訊。如果沒有token那麼對於我們來說,只能進行硬編碼,這樣會存在很多潛在風險,而且並不能模擬真實環境
4. a,b-module 其他業務模組
複製程式碼

5.推薦的編譯方案

在日常開發中我推薦儘量的將業務程式碼模組化
我個人推薦使用的編譯方法是app-module 依賴 sdk,login,和相關業務module 這樣在打包的時候不需要全部打包,只需要部分程式碼就可以執行
當然也有人喜歡單獨編譯一個module輸出apk,這其實都不是什麼難事,只要配置gradle property 引數, 然後在gradle指令碼中配置就可以實現

文章寫得倉促 ,諸多不足之處還望各位體諒

Demo 地址 請點我

Demo 地址 請點我

Demo 地址 請點我

6.篇幅不夠 讚賞碼來湊

WechatIMG93.jpeg

相關文章