------學以至用、用以促學、學用相長javascript
換到平臺產品部後,我進了基礎組件組,跟個人幾個要好的同事一個組。基礎組件組主要是維護一些公共的模塊和組件,好比rabbitmq,mysql,redis,memcache,tomcat,ejabberd,libevent等等。這些我以前都沒有接觸過,一個個都是他們認識我,我不認識他們。因此剛開始的時候就一通亂學,老以爲時間不夠用,常常加班,跟在終端產品部時的工做狀態造成鮮明的對比。可是我喜歡這樣的狀態,這讓我以爲充實,有勁。css
我還沒轉過來以前,基礎組件組就在預研一個新一代的網絡管理系統。由於平臺產品部正在作一個全新的5.0平臺,因此須要一個全新的網絡管理系統,來管理平臺的全部服務器和接入平臺的全部終端。我轉過來沒多久,這個網管系統就正式立項了,由基礎組件組負責開發。新網管系統設計成B/S架構,分爲數據收集模塊,數據處理模塊,數據存儲模塊和前端展現模塊四大模塊。由於這是基礎組件組第一次從頭開始作一個完整的項目,其餘同事對界面處理這已塊都不懂,而後就安排我作前端展現這一塊。雖然我懂界面處理,但是我歷來沒有作過網頁呀,沒辦法,只能從頭開始學。因此那段時間我天天都泡在w3cschool這個網站上面,學習html,javascript,css,ajax等等。html
由於rabbitmq,ejabberd等這些開源組件都是用erlang寫的。我那幾個要好的同事當時爲了維護erlang寫的組件,就學習了erlang這門語言。而後一塊兒吃飯的時候,就一直聽他們說erlang怎麼怎麼好,因此我一直都對erlang很好奇,一直想也想學一學。決定轉到平臺部後,其中一個同事就建議我開始學erlang,還把他買的書借給我看,因此我轉過來以後,erlang就學得差很少了。前端
雖然學了那麼久的erlang,可是包括個人同事在內,還沒人用erlang作過實際的開發。對於一門語言來講,若是從未使用它來開發過東西,那麼對這門語言的理解是沒法深刻的。加上erlang在併發處理這一塊確實表現很不錯,很適合作服務端的開發。因此咱們打算用erlang來寫這個新網管系統的數據處理部分和web服務器,把這個項目做爲咱們的erlang練手項目。java
由於我是作前端展現這一塊的,因此這個web服務器就由我來寫。因而乎又是各類百度呀。後來找到cowboy這個開源web框架,cowboy是erlang寫的。而後咱們這個新網管系統的web服務器就基於cowboy來寫了。mysql
當前端界面和web服務器差很少開發完成的時候,負責數據存儲模塊的同事由於一些緣由要離職,可是他走的時候只定下來網管的數據使用mysql+redis來存儲,mysql存儲告警信息,統計信息等須要持久存儲的數據,redis存儲一些在線狀態,會議信息,告警狀態等實時數據。而沒有給出具體的mysql表設計以及具體的redis數據存儲方案。因此領導當時就很發愁,誰來接手這一塊的工做呢?當時個人工做暫時告一段落了,後續的工做必需要等mysql表設計以及具體的redis數據存儲方案出來後,才能開始。由於前端的主要工做就是從mysql和redis裏面取數據,而後展現給用戶。因此我就主動把數據存儲模塊的工做接了過來,可是redis和mysql我都沒學過呀,沒辦法只能硬着頭皮學了。linux
雖然不少東西都是從頭開始,可是我卻歷來沒有感受到困難或者是不適應,我很享受這個過程。在這個過程當中我深深體會到了,學東西最快的方式就是學了就用。你看我這短短半年的時間裏,學了多少東西,前端開發,erlang,mysql,redis,linux,並且這樣學了後,印象還深。因此我要感謝網管這個項目,若是沒有這個項目,平臺的一些東西,我不會學得那麼快。固然,還要特別感謝個人同事們,在學習的過程當中,碰到的不少問題,都是在他們的幫助下解決的,他們能夠說是我平臺開發的入門老師。web
後來基礎組件組進行結構調整,改成基礎平臺部,包含四個組,應用組,組件組,運維組和部署架構組。由於在終端產品部的時候,我一直是LTM,對於應用開發方面的東西仍是很熟悉的,加上來基礎組件組後,在網管系統的開發上表現也不錯。因此結構調整後,我又成了基礎平臺部應用組的LTM,應用組主要就是作網管這個項目。ajax
成了LTM後,領導分給我兩個應屆生,跟着我一塊兒作網管。也許你會說,你本身都纔剛剛轉平臺開發沒多久,不少東西都尚未搞懂,怎麼帶新人?其實否則,正是由於我也是新人,因此我更懂得怎麼帶新人。由於我剛剛經歷過啊,知道相關的知識怎麼學習會比較快,知道他們會關心那些問題,會犯哪些錯誤。因此對這兩個應屆生基本上就是按照我進平臺組後的經歷進行培養的。試用期事後,首先讓它們學前端的東西,由於前端的東西比較獨立,並且適合新人學習。對於新人來講,最好的激勵方式就是,學完一個東西后,能馬上用所學的作出點什麼,這會帶給他們很是多的成就感,能對後續的學習產生強烈的推進做用。redis
前端的東西他們一個月就基本上學完了,而後網管前端的工做就移交給他們了,我就專一在web服務器和數據存儲這一塊工做上面。把網管前端的工做移交給他們,一方面釋放了個人工做壓力,另一方面也鞏固了他們所學的知識,而且進一步加深了他們對前端知識的理解。
當網管前端的工做作得差很少的時候,我就讓它們開始學erlang。erlang學完後,我就給他們講網管web服務器的代碼,而後我就把web服務器的工做也移交給他們了。同理,他們在作web服務器的過程當中,又鞏固了erlang的學習並加深了對erlang的理解。
由於架構調整以後,以前負責數據處理模塊和數據收集模塊的兩個同事被分到了組件組,這兩個模塊原本要移交給咱們應用組,但由於當時個人工做已經飽和了,新人又尚未培養起來,因此這兩個模塊暫時還由那兩個同事負責。如今新人都培養起來後,我就把這兩個模塊都接過來了。因此最近就一直在維護和整理這兩個模塊,等本身弄懂後,再給給新人培訓。
從2014年三月份轉到平臺部門到如今,一直在作這個網管項目,一直很是忙碌。本身要學一堆的東西,要開發新功能,查問題,改bug,還要培養新人。雖然忙碌,但收穫不少,過得也很充實。
我我的感受,終端開發和平臺開發,差異仍是挺大的。終端開發注重用戶交互和用戶體驗,平臺開發注重高穩定,高可用和可擴展性。作平臺開發要求的知識面比終端要廣,平臺這邊須要研究的技術比終端要多,並且不少方面都值得深刻研究。
2016又是新的一年,對後續工做也要有新的規劃。由於一直在作項目的緣由,雖然不少東西都會了,可是瞭解得不深刻,新的一年應該再往深處去了解。還有一些比較感興趣的東西,可是一直沒有時間去研究,新的一年也能夠抽空去研究研究。
-----------------------------------------------------
歡迎關注個人微信公衆號 ^_^