<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>

            軟件質(zhì)量保障之代碼走查

            發(fā)表于:2018-10-08來(lái)源:未知作者:方騰飛點(diǎn)擊數: 標簽:代碼走查
            代碼走查有幾個(gè)目的,第一個(gè)是讓新同學(xué)快速熟悉代碼并了解系統。第二個(gè)是做咨詢(xún)防控的事前檢查,避免引發(fā)線(xiàn)上故障。第三個(gè)是通過(guò)一起討論和審查,加強團隊代碼閱讀和編寫(xiě)能力

            目的

            代碼走查有幾個(gè)目的,第一個(gè)是讓新同學(xué)快速熟悉代碼并了解系統。第二個(gè)是做咨詢(xún)防控的事前檢查,避免引發(fā)線(xiàn)上故障。第三個(gè)是通過(guò)一起討論和審查,加強團隊代碼閱讀和編寫(xiě)能力,讓大家編寫(xiě)出優(yōu)秀的代碼。代碼走查的優(yōu)點(diǎn)非常多,但是最核心的還是提前發(fā)現問(wèn)題并解決問(wèn)題。

            所以基于以上目的,代碼走查不是批評而是發(fā)現問(wèn)題共同成長(cháng),所以對于寫(xiě)代碼的同學(xué)不需要過(guò)于緊張,但是在代碼走查前可以自己看優(yōu)化一遍,但是變更必須有單元測試覆蓋。

            什么場(chǎng)景應該做代碼走查?我認為有幾個(gè)時(shí)機點(diǎn)是需要做代碼走查的,第一個(gè)是定期,每幾個(gè)月定期做一次代碼走查。第二個(gè)是有重大變更時(shí)做代碼走查,如代碼第一次上線(xiàn)或增加了比較多的代碼。

             

            如何進(jìn)行代碼走查

            代碼走查的角色

            • 主持人:負責主持整個(gè)走查活動(dòng),包括會(huì )議邀約和控制時(shí)間(一般一小時(shí)左右)進(jìn)度。為了讓代碼走查高效,需要及時(shí)阻止不必要的討論,比如講解人講的太發(fā)散、或者大家針對一個(gè)點(diǎn)討論時(shí)間過(guò)長(cháng)。
            • 講解人:負責對代碼進(jìn)行講解并跟進(jìn)修改計劃,一般是系統Owner或代碼編寫(xiě)者。
            • 記錄人:記錄代碼走查記錄,記錄中包括代碼走查中發(fā)現的問(wèn)題點(diǎn)、修復方法和最佳實(shí)踐,問(wèn)題需要指定到對應的人。
            • 評審人:對代碼進(jìn)行評審發(fā)現問(wèn)題并找出最佳實(shí)踐,一般是資深開(kāi)發(fā)和測試同學(xué)。
            • 參與人:參加代碼走查,主要以學(xué)習為主。

            走查前做好充分準備

            講解人整理本次要走讀的代碼分支、系分設計和代碼入口,然后發(fā)郵件通知大家,參加代碼走查的人提前閱讀系分和代碼,針對看不懂的代碼、有問(wèn)題的代碼和設計復雜的代碼全部提交Review記錄。

            講解人必須想好走查哪些代碼,一般是主流程或有問(wèn)題的點(diǎn),控制整個(gè)代碼走查的時(shí)間,我們第一次代碼走查花了三個(gè)多小時(shí),由于時(shí)間太長(cháng),走查的過(guò)程中開(kāi)發(fā)都走了幾個(gè)。

            走查中控制節奏

            直接講代碼很多沒(méi)參與的同學(xué)會(huì )很暈,所以先大致講下系分設計,不需要全部講完設計再講代碼,而是講一部分設計,再講一部分代碼。講解人帶著(zhù)大家一行一行讀代碼,講解代碼的含義和思考,記錄人負責記錄Review出的問(wèn)題和最佳實(shí)踐。

            代碼走查的評判標準,主要關(guān)注幾個(gè)點(diǎn)

            • 編碼規范: 可以使用IDEA的插件自動(dòng)掃描有沒(méi)有編碼問(wèn)題。
            • 設計規范
            • 冪等性
            • 邏輯問(wèn)題:是否滿(mǎn)足需求。
            • 一致性問(wèn)題
            • 并發(fā)和鎖:在并發(fā)情況下,代碼執行結果是否有問(wèn)題。
            • 性能問(wèn)題:代碼是否存在性能問(wèn)題,預計峰值流量能到多少。
            • 分支覆蓋率:是否有分支沒(méi)有覆蓋

            走查后總結

            在代碼走查之后,要優(yōu)化代碼走查,所以會(huì )發(fā)一個(gè)調查問(wèn)卷給大家

            1. 參加代碼走查有什么收獲?
            2. 對代碼走查有什么建議?

            我們走查完之后有幾個(gè)改進(jìn)點(diǎn)

            1. 時(shí)間把控:第一次代碼走查主持人和講解人時(shí)間沒(méi)控制好,走查了三個(gè)多小時(shí),后續主講人講重點(diǎn),主持人隨時(shí)控場(chǎng),討論超過(guò)幾分鐘的就記錄下面,線(xiàn)下討論。
            2. 重點(diǎn)優(yōu)先:大家前面精力比較好后面就分神了,后續主講人優(yōu)先走查重點(diǎn)代碼。

            原文轉自:http://ifeve.com/code-review/

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>