前言
本來應該在春節前寫這篇文章,但實在是有點忙,拖到春節才寫。本來的年終總結,現在當做雞年開工前對猴年的回顧,理清一下思路,哪些做過的、未做的、做得好的、做得不好的......
技術棧
2016年三個技術筆者認為自己做得比較好,并且實踐比較成熟:
1.單元測試;
2.動態代理舊框架;
3.業務拆分。
單元測試
最早理解單元測試的概念,是在2015年末,一位讀軟件專業的同事,給我們介紹的junit、mockito(當時他也是半桶水,哈哈)。后來,經過幾個月研究rxjava、retrofit、mvp、junit、mockito,總結出結合這幾種技術的Android單元測試思路,《(MVP+RxJava+Retrofit)解耦+Mockito單元測試 經驗分享》。
再接下來的幾個月,在Android項目中具體落實單元測試,不斷地整理思路、概念,對某些技術點進行深入研究。例如,如何隔離Android sdk依賴,如何進行文件、數據庫測試,如何驗證參數返回值等。
談談為什么寫單元測試
Android單元測試 - 如何開始?
Android單元測試 - 幾個重要問題
Android單元測試 - Sqlite、SharedPreference、Assets、文件操作 怎么測?
Android單元測試 - 驗證函數參數、返回值的正確姿勢
動態代理舊框架
受到Retrofit框架影響,在四月份時研究了java動態代理。動態代理并不是什么新鮮技術,要玩好它,并不容易。
我們的動態代理,主要用在網絡層。因為項目比較舊,用戶量大,舊代碼不輕易改動;同時,也想用retrofit那種模式,僅需要寫描述業務邏輯的接口,實現通過動態代理執行。因此,筆者決定自己寫一個類似retrofit的框架,接口規則跟retrofit大體一致,底層代碼還是用自己寫的。這樣跟使用retrofit的效果是一樣的,而且可控,根據新需求做調整。框架和底層代碼變動,不需要改動業務代碼。配合單元測試,寫網絡請求業務效率比以前提高不少。
不僅僅是網絡層,其他層也可以用動態代理的思路。
業務拆分
對項目進行業務拆分,在2016年初已經有這個想法,由于一些技術點未突破,框架的不完善,舊代碼各種耦合,新業務開發緊張,遲遲未能實現。2016年5月去北京參加GMTC大會,天貓、滴滴、鏈家網等,都有講到業務拆分、插件化等開發模式,具體實現不盡相同,但理念基本一致。
回廣州后,經過幾個月的重構、框架升級、代碼解耦,配合單元測試確保穩定性,加上對業務間調用數據這個技術點有所突破,業務拆分的路逐漸清晰起來。直到2016年11月,業務拆分總算在項目中得到實踐。
項目的其中一個重要問題,就是編譯慢,這個恐怕是很多項目都存在的詬病。業務拆分后,業務代碼分成不同的module,每個module可以單獨編譯、運行。這樣在開發新業務時,工程師僅需要編譯新業務代碼&底層代碼,某種程度上開發效率大大提高。
其他與不足
筆者也有研究過插件化技術及可行性,覺得Small比較簡單。(項目中并沒有使用插件化)
很遺憾,今年還未做到持續集成,jenkins、fastlane也沒時間研究,希望2017年對持續集成方面有所涉足。
工程師的自我修養
春節后,筆者就是工作滿四年的碼農了,在思想上跟一兩年前,有不少變化。
對于新功能開發,好像越來越沒把握,指開發時間上。這個也跟產品要求越來越復雜有關,以前做的功能,流程比較單一,從后端請求數據、緩存、顯示;現在做了幾個功能,流程復雜,各種入口,各種情況......原來計劃一個月開發,算上改需求、測試、改bug,往往不止一個月。
除了以上客觀因素,也有主觀因素。以前寫代碼,寫完覺得不太亂,就提交;現在,寫完還要想想函數名、成員名、類名好不好理解,函數調用、代碼流程是不是通俗易懂,注解別人是否看得懂.....概括來說,就是可讀性。還要寫單元測試呢......
如果你問筆者,最大的變化在哪里,可能是懶惰吧.....哈哈哈哈哈.....
理財、保險
理財對于每個人來說,是非常重要的事情。筆者原本以為程序猿有很強的分析能力,對股市、基金更容易上手。其實,每個人也差不多,都很容易追漲殺跌,還有被小道消息左右。
從2015年3月買基金,股災前成功脫險;2016年初重返基金,研究各種類型基金,債券、指數、分級;2016年10月開始玩股票,看市盈率、利潤增長率等。
2016年債券收益非常非常低;6月份開始投H股指數,直到12月基本套現了,還留一點,這筆收益算是2016年最大的收益;后來把部分債基換量化基金,暫時虧損中(5%以內);股票嘛,這里大有學問,買了不少,基本都是藍籌,沒賺沒虧。(股票好像不屬于理財,屬于投資)
投資有風險,入市需謹慎。
保險,跟理財同等重要(有的大V把保險也歸為理財一種)。
去年9月就計劃買份重大疾病險,約友邦的agent聊了一兩次,對大陸這邊的保險不太滿意,現在打算買香港友邦的產品,有親戚在港澳做agent。
我想好多讀者對保險很陌生,覺得保險很多是騙人的。這么想很大原因是以往國內保險agent素質普遍低,老是推薦提成高的產品,性價比低,好賺錢;而且不誠信,本來你未達到投保條件,為了業績,agent推薦你買,也不告訴你真要理賠時,可能拒賠。現在互聯網那么發達,買保險的渠道很多,知乎、微信訂閱號有不少大V介紹各種保險,大家不妨先看幾篇文章。
這里強烈推薦力哥公眾號:
如果你完全小白,推薦先買一年醫療險 平安e生保 (平安保險官網or服務號“平安健康生活”買),再買一年交通意外or綜合意外險。重大疾病險嘛,可以看完文章再考慮。當然,你也可以考慮家庭綜合意外&醫療險。
千萬別以為年輕身體棒棒噠就不用買保險,保險約早規劃約好。
跑步
現在筆者的跑量,大概是一周一次,12公里左右;能承受的最大單次距離,是半馬(21公里)。
在同事的威逼利誘下,2016年12月跑了廣馬全馬(42公里),好慘T_T。這個量完全超出我承受能力,到了30公里后,邊跑邊抽筋。我公司的女同事們好變態的,全馬不在話下。
筆者只是個跑渣。
旅行
2016年去了國內幾個城市和景點:
烏鎮
紹興:三味書屋、魯迅故居(百草園)、蘭亭鎮等
莫干山:國共和談舊址、蔣介石度假別墅等
溧陽:南山竹海、天目湖
鎮江:金山、焦山、北固山等
常州
無錫:靈山大佛、黿頭渚、南禪寺等
2017年初,還去了廈門。廈門空氣真的好,對比北上廣,確實挺小,散散心挺不錯的。
關于作者
我是鍵盤男。
在廣州生活,在互聯網公司上班,猥瑣文藝碼農。喜歡科學、歷史,玩玩投資,偶爾旅行。