同步發表於:http://avenwu.net/2015/12/21/keep_optimize_your_code/android
話說「夜路走多了,總會碰到鬼」
有一段時間沒作筆記了,本文聊一聊工程開發中的後續工做;api
筆者從事移動開發工做第四個年頭,前先後後也接觸了很多項目,在項目開發迭代的大背景下,「代碼腐化「問題隨着時間推移會最終顯現出來;
這裏不說談爲何會出現」腐化「問題,由於緣由真的不少,並且每每不可預知;架構
面對上述問題,持續優化是一種吃力可是有效的解決方案,惋惜沒有多少團隊真正實施下來; 從項目自己而言,其目標是用戶體驗,工程的優化是技術內在,每每不具有立竿見影的體驗; 開發的工程師若是沒有絕對的動力,誰願意貿然改動本就」正常「運行的代碼,改壞了怎麼整?
因此所說沒點閒工夫和勇氣,動刀子的事是不容易的;app
可是不少時候其實你是最後一道防線,若是你不作,就沒有人作;
筆者3月份入職極客學院,打一波廣告,不喜勿噴:框架
極客學院IT在線教育平臺-中國最大的IT職業在線教育平臺
公司Leader也開明,所以Android端已經被我"折騰"好一陣, 這也是我繼續在公司效力的動力之一」有舞臺施展「;
經歷了多輪調整和優化,目前項目的架構和開發整體朝着更完善的方向前進;post
極客學院的android客戶端近期即將上線的4.0版本,由筆者主導開發的版本數也++;單元測試
筆者優化代碼通常在是版本迭代之間進行,一來不收時間約束,效果好就集成至倉庫,很差的話就直接廢棄;而來優化這種活可能會影響業務,因此在閒時作的優化能夠在下一版測試當中被充分考驗;測試
在新版上線的空隙間正好又是一次練兵優化的時機,這次目標是優化接口請求的業務成調用;優化
聲名在外的」Retrofit「之因此廣受好評,其簡潔的調用,使得快速開發成爲可能功不可沒;極客學院內部的就業版客戶端用的正是這套api框架;.net
主站極客學院app使用的時Apache的http,功能知足需求,所以一直用到如今,這次的優化主要是爲了封裝調用層,讓業務邏輯也想Retrofit同樣能夠經過很是簡單的註解就實現接口定義;
先來看看根據需求定製的幾個註解類,包含了get,post和cache等:
接口定義的時候,也很簡單:
接口調用,包括單元測試和業務調用:
基本上寫一個api請求就是這樣簡單幾步就搞定,和retrofit用起來差很少;
本身寫的代碼,含着淚也要優化下去😄