In GitLab by @in_in_mm on Oct 28, 2020, 22:10
前言
規劃專案重構的思路。
因為當前迫切的需求是在 github open source ,所以第一階段目標是能讓其他人能夠協作為優先。
以下是大概的重構思路,有 highlight 的是必須要做的,其他則是有空時可以慢慢改。
Detail
Discussion
重構會分成幾個階段,第一階段會先 整理專案。
第二階段初步抽象化後,改為由下往上開發,從最底層的資料層重構,先建立一個 MVVM 結構。
Appendix
以下是之前 slack 整理的專案可能會用到技術選型或是套件 (感謝 @chrisynchen 整理)
Networking:
- retrofit2 + OKHttp3
- Volley
ImageLoader:
Architecture:
Async work:
DI:
CI/CD:
- travis
- circle ci
- GitHub Action
Test libs:
- Power mock
- Mockito
- MockK
- Google trust
- MockWebServer
In GitLab by @in_in_mm on Oct 28, 2020, 22:10
前言
規劃專案重構的思路。
因為當前迫切的需求是在 github open source ,所以第一階段目標是能讓其他人能夠協作為優先。
以下是大概的重構思路,有 highlight 的是必須要做的,其他則是有空時可以慢慢改。
Detail
整理專案:統一專案風格、刪除個人訊息
調整專案配置:刪除多餘的檔案,整理 git 、 gradle 等 config 的設定格式化:reformat 程式碼並加入一些基本的 lint ,規則以 google 的 coding style 為準抽象化:之後專案會以 MVVM 為目標,但須先將專案的 controller 及資料層的公開方法介面化
定義 scope:專案大致會先分成View、ViewModel、RepositoryISP:將大的 interface 切割成單一職責的小模塊控制反轉:把 class 依賴的 interface 改成建構子注入其他:這些是可做可不做,或是需要邊做邊想的事情
非同步調用:要想一下這個專案的實作方式,主流大概有 Callback、RxJava、Coroutines、(LiveData) 等 Select a concurrency design pattern to simplify code that executes asynchronously #13Thread Handle:整理執行緒的調用方式,最好可以用 thread pool 之類的方式集中處理Error Handle:錯誤處理的機制database:有需要改成 Room 之類的嗎?因為需要存的 local 資料不多,可以考慮用 android keystoreDiscussion
重構會分成幾個階段,第一階段會先 整理專案。
第二階段初步抽象化後,改為由下往上開發,從最底層的資料層重構,先建立一個 MVVM 結構。
Appendix
以下是之前 slack 整理的專案可能會用到技術選型或是套件 (感謝 @chrisynchen 整理)
Networking:
ImageLoader:
Architecture:
Async work:
DI:
CI/CD:
Test libs: