前幾天在公司小組內做了一個android插件化的技術分享蒋搜,然后被我們jerry大大追殺著要一篇分享册着,然后我就琢磨著怎么寫躬充,難道要把這么大一個主題用一篇文章寫完逃顶?感覺不現(xiàn)實,況且本身我現(xiàn)在還在拜讀人家的代碼中麻裳,也沒這個自信能把所有細節(jié)都理解透口蝠,解釋清楚器钟,所以再三考慮還是決定不誤人子弟了......
不過為了做這個分享津坑,我自己倒是學到了許多。因為要給別人分享傲霸,那肯定不能瞎扯啊疆瑰,別人有疑問那肯定得解釋到位啊,對于某些具體的細節(jié)不能全靠猜啊昙啄,咱得講證據(jù)啊穆役,所以呢,只能逼著自己去擼別人的代碼梳凛,擼著擼著發(fā)現(xiàn)擼不動了耿币,一些地方看不懂,看著好像是干嘛的韧拒,但又不確定淹接。如果是平常,可能也就這么過去了叛溢,反正大致上能明白怎么回事塑悼,但這次為了分享,得講得出個所以然楷掉,也就硬著頭皮繼續(xù)研究下去厢蒜。這樣,往往會學到其他新的知識烹植,比如資源加載機制斑鸦、應用程序和系統(tǒng)服務之間的交互模式、動態(tài)代理草雕、activity的啟動過程巷屿、廣播注冊細節(jié)等等,其實這些內容即使不知道促绵,也是能漂亮的完成一個app的開發(fā)的攒庵,畢竟大部分時候我們用不上這些東西嘴纺。但一直這么下去,也許你就一直僅限于做一些夠用的app浓冒,而不是一些好用的產品栽渴,而且隨便一個培訓機構出來的小伙就能把你替換了,完全沒有自己的競爭力稳懒。
所以呢闲擦,說的現(xiàn)實點,為了自己的錢途场梆,我覺得也不應該止步于表面墅冷。關于這一點,其實從程序員解決bug的方式就很容易看出來或油,比如說最常見的NullPointException寞忿,最簡單快捷的解決辦法就是給出錯的代碼加上非空判斷,以前我就是這么做的顶岸,然后過幾天另一個地方又出現(xiàn)空指針腔彰,那就再來一遍唄。就這樣辖佣,還在為自己解決問題的能力和效率沾沾自喜霹抛。殊不知,也許只要把源頭找到卷谈,這一系列問題就都不會再出現(xiàn)了杯拐,這才叫解決bug,才是有意義的代碼世蔗,而不是無謂的加判斷端逼。當然,這個找源頭的過程可能并不輕松凸郑,但也正是這樣才能體現(xiàn)你的能力裳食。
這些也得感謝現(xiàn)在的老大,在不斷的被追問導致這個bug的原因是什么的過程中芙沥,讓我要成了追根溯源的習慣诲祸,而且,在找原因的過程經(jīng)常會發(fā)現(xiàn)一些不知道的細節(jié)而昨。所以救氯,沒事多問問自己為什么出錯,并且找出那個罪惡之源歌憨!