***有關(guān)生活篇2016年度總結(jié),請移步微信公眾號JackieZheng查看歷史消息***
努力工作
我很感激,每次在績效考核的時候,從老大那邊都是收到了大量的正反饋。能夠得到同事和領(lǐng)導(dǎo)的認(rèn)可,這是一種金錢不能比擬的幸福。老大為我們提供了足夠輕松自由的工作環(huán)境,作為相互信任的另一方,我們對待工作也必是全力以赴,保質(zhì)保量的完成手頭上的任務(wù),我一直認(rèn)為這是一個令人愉悅的良性生態(tài)圈。
14年11月份校招季,有幸拿到這家聲名在外的公司的offer。帶著憧憬和美好的期許,15年4月進(jìn)入公司實(shí)習(xí)。辦理入職很是細(xì)心周到,老大早已幫忙領(lǐng)好了電腦,這可是號稱工作站,價值2萬的大家伙,附屬的電源能抵得上一塊磚頭的重量。參加完為期一周的入職培訓(xùn)后,被告知先跑一段時間的case,我心里琢磨著,用這么好的機(jī)器讓我跑case,不是暴殄天物么。但是同事們語重心長的告訴我,跑case,是讓你熟悉業(yè)務(wù),現(xiàn)在我承認(rèn),這是最快最有效熟悉業(yè)務(wù)的方式。
與之前做的一些項目不同,這是一個產(chǎn)品,已經(jīng)開發(fā)有三年時間,用到的都是比較新的技術(shù)工具和設(shè)計理念,比如intellij iddea git maven jenkins angularjs docker rabbitmq等等。所以想要摸清這個框架的體系并沒有想象中那么輕松,但是相比15年我還是在外圍瞧熱鬧,16年我已經(jīng)入門了并有了一些體會……
你可能經(jīng)常會接到一個修復(fù)bug的case。但是這個case你并不熟悉甚至完全不知道相應(yīng)的功能模塊在哪,起初你會有點(diǎn)懵比,但是接的多了,你就有自己的一套解決問題的方法了。比如首先從提交bug描述中看懂問題,盡可能的提取更多有用的信息,如預(yù)期結(jié)果是什么,實(shí)際結(jié)果是什么,如何重現(xiàn)問題,已經(jīng)經(jīng)手這個bug的人,在什么環(huán)境里面出現(xiàn)的問題,有沒有相應(yīng)的commit等等。然后根據(jù)重現(xiàn)步驟,確認(rèn)在指定環(huán)境上確實(shí)能夠重現(xiàn)問題。后面就是解決問題了,比如看看之前是否提到那個類或者那個UI模塊,可以通過瀏覽器調(diào)試工具找到相應(yīng)的html或者javascript文件,也可以通過類名到項目中定位該類,使用git工具show history找出最近提交的commit和committer,看是否能夠提供更多的幫助信息。找到相應(yīng)的代碼或者熟悉的人就好辦了。下一步如果是UI的問題,定位到指定的javascript在瀏覽器就可以調(diào)試,如果是java類,比如spring mvc的controller層在處理rest call邏輯是否出現(xiàn)問題,通過打斷點(diǎn)調(diào)試排查。所以說,套路固然重要,但是找到一套屬于自己解決問題的方法才是王道。
在這一年里,也潛移默化的明白了很多編程思想和設(shè)計理念吧。比如寫完一個功能類后,一個保護(hù)該類的單元測試(ut)是少不了的,一個feature完成后,一個automation test也是不可或缺的。開始也不明白寫這些比功能代碼量還大甚至還復(fù)雜的代碼有什么用,但是通過后來的實(shí)踐你會發(fā)現(xiàn)這個非常有用,對于持續(xù)集成持續(xù)部署以及持續(xù)交付來說,如果你的代碼相應(yīng)的ut或者automation test跑掛了,首先可以肯定的是你需要check你的代碼,排查是test寫的有問題還是功能問題,這時候test就是一個校驗(yàn)的作用。與此同時,還有保護(hù)代碼的作用。同樣在jenkins上跑,你的ut掛了,但是你可以肯定的是你并沒有改代碼,但是當(dāng)你去排查的時候,你發(fā)現(xiàn)git上確實(shí)顯示有人動了你的代碼,好了,你就可以理直氣壯的找他為什么要動你的代碼并如