阿里之路(一)


阿里之路(一)


大家好,我是追夢者,通過校招進入到阿里巴巴,當時複習時候目標很明確就是要進入BAT,然後就一堆堆資料的複習,本科+研究生7年用的都是c++,所以面試時候自然面試了c++職位,但是面試時候面試官說我們只要Java,你願不願意做Java方面開發,自然願意啊,當時啥都沒想,就進入了現在的部門做Java後臺的業務開發。

進入職場最直觀的感受是凡是要靠自己去摸索,去研究,最多業務或者技術點上同事和老闆會給你指點一下,但是具體具體細節還是需要自己去花時間去研究的,畢竟別人都有自己的工作的,即使工作不很忙,人家還想幹點自己的事情的。

阿里的系統大多文檔不是很齊全,所以需要自己看代碼+諮詢業務的方式來理清脈絡。自然看代碼debug是不可缺少的步驟。在轉正前都有三個月實習,這三個月時間完成了對第一個業務系統的代碼邏輯的熟悉,熟悉後就會發現這個系統並不複雜,都是固定的執行線路。

空閒之餘開始看開源框架源碼,說起看源碼這不得不感謝前同事了元(花名),了元是一個牛逼哄哄的技術牛人,無論是Tomcat,JVM調優,Calssloader,併發編程,OSGI,JNDI等他都很深入的瞭解,感覺技術上就沒有他不知道的,並且喜歡研究開源框架源碼。一開始了元是帶我看Spring的源碼,我感覺很吃力,但是花了大概1月時間對Spring框架有了一點認識,然後就磨磨蹭蹭的看完了Spring IOC和AoP的代碼。

對於看源碼有一點感觸,就是先找一個demo,分析運行結果,然後debug進入,在debug過程中要幹兩件事情,第一畫出模塊類圖結構,第二畫出時序圖。好處在於debug完後你會清楚的看到這個框架的這塊功能是有哪些模塊類組成,每個模塊類對這個功能的實現提供了哪些能力等等,這對你理解這個功能的設計有一定幫助,另外時序圖有助於你瞭解這個功能的執行邏輯,當你下一次想看這個功能的某些實現時候,你可以根據時序圖直接找的你感興趣的類,直接進入研究。

看完Spring源碼的大部分源碼後,就開始看Tomcat了,自然這個一方面是受了元的影響,一方面是自己的興趣,tomcat裡面內容還是比較多的,有空就翻翻,研究tomcat一個心得是首先從main函數開始看tomcat的各級容器是怎麼初始化,啟動的,然後在分析一個請求過來後是怎麼處理的。建議先看一點網上的資料對tomcat的整個結構體系有個瞭解,然後再看代碼會事半功倍。

當然後面有看了Velocity,mybaits和阿里的大部分中間件代碼,看源碼最大的好處是可以開闊你的思維,提升你的架構設計能力,有些東西書本和緊靠自己思考是很難學到的,必須通過看源碼,看別人如何設計的,然後思考為何這樣設計。能力的提高判斷不在於你寫了多少代碼,做了多少項目,而在於給你一個業務場景時候,你是否能拿出幾種靠譜的解決方案。而如何才能拿出來那,一來靠經驗,二來靠歸納總結,而看源碼,看經典框架如何實現的,則可以快速累加你的經驗。......

隨著2年積累,你會慢慢發現自己之前的積累實在是太淺了,學的東西太基礎了,那麼如何才能在把自己提高一個層次哪,那就不要甘於做純碎堆積代碼的業務了,去中間件吧,去淘寶吧,在那裡高併發,高流量的挑戰等著你去被虐...

最後發表下感慨:良禽擇木而棲,努力很重要,選擇更重要。


分享到:


相關文章: