前言
前不久剛結束對 20 模塊項目的第 3 輪重構,一路見證 MVC、MVP、Clean 的優缺點並形成自己的體會。
近期在總結工作經驗的同時,開始寫博客。
之所以將規劃放出來,一來是總結的過程中已經形成底稿,不如和大家一塊分享,各抒己見。二來粘貼布告,能有效督促自己執行。
Viabus 架構 的開源就是因爲有一天,和同事聊着聊着說要開源,結果就真的就做了。
國慶規劃
由於 Viabus 對很多人來說,是個很陌生的東西,因此如果想讓更多人享受到,“合理而快捷” 的開發體驗,可不是一件簡單的事。
對此我想的招是,先在網上找個文藝小清新的項目,重構,然後掛在 Github 項目頁面 下方,這樣人們就願意嘗試,畢竟試錯成本超級小嘛。
在項目重構前,我需要利用國慶七天做一些準備工作。
以上是我依據 “個人開發” 的順序流程而羅列的技術堆棧。
做過個人開發的一定知道,最頭疼的莫過於被一些非專業層面的事情打斷。例如如何設計一個好看的界面,這個頁面的視覺交互該如何如何。
如果這些事情一開始沒有定好,那軟件開發根本無從開始。因爲如果沒有一個好看的界面,你都不會相信這個軟件能受人喜歡,首先自己就不相信、不喜歡。
再者,如果沒有一個既定的界面設計,那麼開發的過程中就會不斷的斟酌,反反覆覆,消磨了開發的熱情、拖延了進度。
因此想到的好招就是上述說的,重構市面上已有的產品。
軟件的本質
軟件的本質是數據的交互。數據是 app 的靈魂。
因而除了那些工具類軟件,多數軟件只有和後臺建立了連接,才能源源不斷的拿到數據和層出不窮的變換着展示。
所以第一個要掌握的就是 抓包。
教程網上一搜一大把,鏈接我就不提供了。可以使用 Charles(Mac) Fiddler(Windows) 來完成抓包工作。
除此之外,過程中可能還要涉獵一番 http 協議和 TCPIP 體系結構。掌握它們的概念,都是會用的到的。
軟件重構的目標
軟件的本質是數據的交互。無論是多麼簡單還是複雜的軟件,都遵守這一定律。小到一個方法:輸入參數,返回結果,大到一個業務,一個模塊,輸入配置,返回結果。都是一個道理。
那麼軟件重構的目標,就是將不符合軟件本質定律開發的軟件,推倒重來,依據該定律來開發。
在該定律的指導下,UI 和 業務 是完全分離的。UI 的職責僅限於請求數據和處理 UI 邏輯,業務的職責僅限於處理請求和返回結果。因此 UI 只負責 UI,它不需要知道業務是怎麼準備數據的,業務只負責數據,它不需要 UI 在拿到數據後怎麼使用怎麼處理。
剛好符合設計模式的6大原則。
因此,進一步說,軟件重構的目標,
一是使數據的交互標準化。底線是,數據配置和資源的存放位置,必須便於聯想。數據名稱的定義,必須規範化,不允許使用魔法值。
二是使數據的交互模式化。意思是,數據交互的雙方職責明確、職責邊界明確、獨立自主、互不干涉。
爲此第二步就是,查閱一下數據交互框架的源碼,對設計模式在 android 中的廣泛應用有所見證。
通用必用 Widget 的準備
磨刀不誤砍柴工,平日裏就要總結、歸類和封裝你在項目中必然會用的到的控件。例如列表、菜單、對話框等等。這樣在編寫新項目時,不會被打斷。
根據使用場景,我將控件分爲以下四類:
1.展示類。是那些供展示,不可編輯的控件。例如引導頁、信息展示頁。
2.提示類。像吐司、對話框等等,及時提醒用戶必要信息的手段。我們可以通過它們來增強軟件的表現力,以獲取用戶的信任。
3.導航類。就是點擊即可從此處跳轉到別處的控件。例如列表、按鈕等。
4.表單類。就是可以執行輸入、勾選等表單操作。
總結
以上就是國慶期間的規劃:
1.尋找文藝小清新項目,抓包,溫習http和TCPIP。
2.歸類和整理通用必用控件,供後期不斷封裝。
3.查閱數據交互框架的源碼,見證設計模式。
感謝你的閱讀,歡迎點贊評論督促我完成!
更多文章
Github : KunMinX / android-viabus-architecture
Android:四大架構的優缺點,你真的瞭解嗎?
Viabus - 年輕人的第一款架構