android團隊對新技術的態度

NO IMAGE

前提:

最近在進行元件化的專案結構調整討論,我提出引入RxJava Retrofit。在深入討論的時候,同事問了一句:為什麼要引入Retrofit,現在的Volley不是用的好好的嗎?而且從Volley切換到Retrofit,涉及程式碼遷移比較大,影響面也非常大。

為什麼要引入RxJava:

從我本人的技術棧來看,響應式程式設計是一種非常好的技術思想,不侷限於技術;我希望團隊內的同學,不要把RxJava單純看作某一個第三方依賴,而是看作一種解決問題的新思路。目前來說,RxJava在專案中的使用場景比較少,但是,我相信,隨著後續大家對於RxJava的深入,能不斷拓展出新的場景;同時,用嘗試用它來解決一些我們原先存在的難題。期望:後續對pipeline機制以及函數語言程式設計的理解,會帶來一定的幫助。

為什麼要引入Retrofit:

站在十字路口徘徊,我也在試著問自己:為什麼要引入Retrofit?是因為網路上,大家都在用這個,就因為這個?還是為了嘗試它的新特性?面對新技術,我開始迷茫了!我應該以什麼樣的態度來面對新技術?我認為自己進入了為了技術而技術的怪圈,並沒有真正地去思考用什麼技術解決什麼問題。今天同事的問題,讓我幡然醒悟。我會自己寫一些app去嘗試,體驗一下。如果體驗下來,的確在使用性上,設計上給人有驚豔的印象,那麼我會去深入瞭解實現的原理(也就是俗稱的拆輪子)。再對比原有的技術方案,看看有什麼差異,各有什麼優劣,有沒有替換的價值。

最後自己的觀點

我認為技術是為問題服務的,所有的技術都是為解決問題而誕生的,這一點應該毋庸置疑。作為一名軟體工程師,你有好奇心,去了解新的技術,這不是壞事。但是,新技術與原有技術對比,對於同一問題的解決,是否有突破?新奇的地方到底是什麼?我們不應該停留在API的層面,應該更深入的去了解他們是怎麼設計的?怎麼解決問題的?對於新技術,自己玩,怎麼玩都可以,但是引入的專案中,這個就需要慎重了。因為業務之複雜,涉及改動的程式碼(也就是影響面)之多,在沒有有效手段保證的情況下(測試的迴歸測試這種手段,個人認為有點low了),不要草率得決定替換。

參考文章:

http://coolshell.cn/articles/…
http://coolshell.cn/articles/…
http://coolshell.cn/articles/…