代码走查-放过疑点就是埋雷
? ? ? ? 老大要求我每周找個員工走查100行代碼,我心想你老大當年可是技術(shù)控,現(xiàn)在莫非也要我走你的路線嗎?我是個聽話的屬下,領(lǐng)導的意圖都是全部照做。到工作區(qū)域轉(zhuǎn)悠時正好看到個小弟要提交代碼,我過去坐旁邊說:來,我們一起走查一下你的代碼吧,一臉懵逼的他和多年不寫代碼表面鎮(zhèn)靜而心虛的我和說,好。就這樣開始了。
?????? 嗯,當年我可是同批入職員工里的佼佼者,當年在產(chǎn)品中的開發(fā)中有很多創(chuàng)新,有的軟件模塊在近10年后還被人拿來引用。代碼風格還是我當年的那樣,某些函數(shù)封裝也似曾相識,有些熟悉的感覺,其余我啥也看沒出來。100行代碼很快走完,貌似交差是個非常easy的事情。
?????? 要離開時我說,你覺得你的代碼還有哪些存在疑惑的地方嗎?他想了一下說,我總覺得感覺這個地方改的不太放心,但是驗證結(jié)果是正確的。哦,到我擅長的了,開始分析,上層相同的報文下到設備上結(jié)果是相同的,沒問題;但是兩個設備上的代碼有差異,一個經(jīng)過字節(jié)序轉(zhuǎn)換,一個卻沒有,但cpu是一樣的啊,是奇怪。我說根據(jù)經(jīng)驗,肯定哪個地方還不對,因為解釋不通啊。你再找找原因,看看代碼,我就開會去了。
?????? 他還是認為自己是技術(shù)控,事實勝于雄辯,于是就想當然構(gòu)建版本了,結(jié)果兩天后被測試提了嚴重故障,然后一臉懵逼的來找我說那天的版本能不能重新構(gòu)建,找到原因了,不用轉(zhuǎn)換字節(jié)序,是因為代碼用到的有個結(jié)構(gòu)體沒有沒有相同字節(jié)對齊。當時驗證正確,只是碰巧那個報文是可以驗證通過的。靠,能不能重新構(gòu)建,必須得重來啊,我頓感壓力倍增,這個版本延誤好幾天了,重新構(gòu)建要再延誤兩天,各種流程再來一遍,浪費人力物力,浪費感情,我舔著臉四處打點關(guān)系。
??????? 技術(shù)控們,虛心接受別人的質(zhì)疑,當有疑惑解釋不通的地方看著結(jié)果是對了,實際上只是這個場景對,不是所有場景都對,早晚還要出問題。心血來潮,幾年不碰代碼,走這一次就碰到隱秘問題,說明什么呢?
???????? 為什么代碼走查?代碼走查是通過別人review一下,用不同的思維演義一遍邏輯,以期發(fā)現(xiàn)你不能發(fā)現(xiàn)的問題,就是跳出作者的定勢思維
???????? 代碼都走查什么?當年剛畢業(yè)時,走查語法,想想很可笑。代碼走查是走查邏輯性,需求滿足性,臆想下運行性能是否達標,架構(gòu)合理性,產(chǎn)品的場景是否滿足
???????? 代碼走查的心態(tài)?我的代碼希望別人能發(fā)現(xiàn)問題,也能允許別人提問題,最后結(jié)對雙方再一起捫心自問一下,代碼真的沒問題了嗎?真的嗎?
???????? 誰走查代碼?當然找能力經(jīng)驗高的。
???????? 最后一句:代碼走要走心。別留疑惑點,留疑惑必定是埋雷。你有沒有由于代碼走查發(fā)現(xiàn)嚴重問題?或者放過問題導致工程問題爆發(fā)呢?
總結(jié)
以上是生活随笔為你收集整理的代码走查-放过疑点就是埋雷的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker热点文章链接 - 持续更新
- 下一篇: 《MOSSE》简述