Android:這是一個高階工程師的國慶充電規劃
前言
前不久剛結束對 20 模組專案的第 3 輪重構,一路見證 MVC、MVP、Clean 的優缺點並形成自己的體會。
近期在總結工作經驗的同時,開始寫部落格。
之所以將規劃放出來,一來是總結的過程中已經形成底稿,不如和大家一塊分享,各抒己見。二來粘貼布告,能有效督促自己執行。
Viabus 架構 的開源就是因為有一天,和同事聊著聊著說要開源,結果就真的就做了。

高能.jpg
國慶規劃
由於 Viabus 對很多人來說,是個很陌生的東西,因此如果想讓更多人享受到,“合理而快捷” 的開發體驗,可不是一件簡單的事。
對此我想的招是,先在網上找個文藝小清新的專案,重構,然後掛在 ofollow,noindex">Github 專案頁面 下方,這樣人們就願意嘗試,畢竟試錯成本超級小嘛。
在專案重構前,我需要利用國慶七天做一些準備工作。

技術堆疊.png
以上是我依據 “個人開發” 的順序流程而羅列的技術堆疊。
做過個人開發的一定知道,最頭疼的莫過於被一些非專業層面的事情打斷。例如如何設計一個好看的介面,這個頁面的視覺互動該如何如何。

推眼鏡.jpg
如果這些事情一開始沒有定好,那軟體開發根本無從開始。因為如果沒有一個好看的介面,你都不會相信這個軟體能受人喜歡,首先自己就不相信、不喜歡。
再者,如果沒有一個既定的介面設計,那麼開發的過程中就會不斷的斟酌,反反覆覆,消磨了開發的熱情、拖延了進度。
因此想到的好招就是上述說的,重構市面上已有的產品。
軟體的本質
軟體的本質是資料的互動。資料是 app 的靈魂。
因而除了那些工具類軟體,多數軟體只有和後臺建立了連線,才能源源不斷的拿到資料和層出不窮的變換著展示。
所以第一個要掌握的就是 抓包 。
教程網上一搜一大把,連結我就不提供了。可以使用 Charles(Mac) Fiddler(Windows) 來完成抓包工作。

Charles.png
除此之外,過程中可能還要涉獵一番 http 協議和 TCPIP 體系結構。掌握它們的概念,都是會用的到的。
軟體重構的目標
軟體的本質是資料的互動。無論是多麼簡單還是複雜的軟體,都遵守這一定律。小到一個方法:輸入引數,返回結果,大到一個業務,一個模組,輸入配置,返回結果。都是一個道理。
那麼軟體重構的目標,就是將不符合軟體本質定律開發的軟體,推倒重來,依據該定律來開發。

viabus_view_bus_business.png
在該定律的指導下,UI 和 業務 是完全分離的。UI 的職責僅限於請求資料和處理 UI 邏輯,業務的職責僅限於處理請求和返回結果。因此 UI 只負責 UI,它不需要知道業務是怎麼準備資料的,業務只負責資料,它不需要 UI 在拿到資料後怎麼使用怎麼處理。
剛好符合設計模式的6大原則。
因此,進一步說,軟體重構的目標,
一是使資料的互動標準化。底線是,資料配置和資源的存放位置,必須便於聯想。資料名稱的定義,必須規範化,不允許使用魔法值。
二是使資料的互動模式化。意思是,資料互動的雙方職責明確、職責邊界明確、獨立自主、互不干涉。
為此第二步就是,查閱一下資料互動框架的原始碼,對設計模式在 android 中的廣泛應用有所見證。
通用必用 Widget 的準備
磨刀不誤砍柴工,平日裡就要總結、歸類和封裝你在專案中必然會用的到的控制元件。例如列表、選單、對話方塊等等。這樣在編寫新專案時,不會被打斷。

capture.gif
根據使用場景,我將控制元件分為以下四類:
1.展示類。是那些供展示,不可編輯的控制元件。例如引導頁、資訊展示頁。
2.提示類。像吐司、對話方塊等等,及時提醒使用者必要資訊的手段。我們可以通過它們來增強軟體的表現力,以獲取使用者的信任。
3.導航類。就是點選即可從此處跳轉到別處的控制元件。例如列表、按鈕等。
4.表單類。就是可以執行輸入、勾選等表單操作。
總結
以上就是國慶期間的規劃:
1.尋找文藝小清新專案,抓包,溫習http和TCPIP。
2.歸類和整理通用必用控制元件,供後期不斷封裝。
3.查閱資料互動框架的原始碼,見證設計模式。
感謝你的閱讀,歡迎點贊評論督促我完成!

老司機.jpg