剛剛!谷歌更新開(kāi)源代碼評(píng)審規(guī)范,代碼好不好一目了然
谷歌很早之前就已經(jīng)建立了一套通用的工程實(shí)戰(zhàn)指南,它幾乎囊括了所有編程語(yǔ)言與各種類型的項(xiàng)目。這些文件代表了谷歌各種最佳實(shí)踐的集合。今天,谷歌將這一套代碼評(píng)審(Code Review)規(guī)范開(kāi)源了出來(lái)。
目前,這份代碼評(píng)審規(guī)范實(shí)際包含兩套獨(dú)立的文件:
代碼評(píng)審者的指南
- 代碼評(píng)審標(biāo)準(zhǔn)
- 代碼評(píng)審希望達(dá)到什么
- 在代碼評(píng)審中導(dǎo)航修改列表
- 代碼評(píng)審的速度
- 如何寫審查的評(píng)論
- 處理代碼評(píng)審的回退
CL作者指南
- 寫一個(gè)好的修改列表描述
- 構(gòu)建一些小的修改列表
- 如何處理代碼評(píng)審者的評(píng)論
其中一些文檔中使用了Google的內(nèi)部術(shù)語(yǔ),Google也給出了詳細(xì)的解釋:
CL:表示“變更列表(changelist)”,意思是已經(jīng)提交到版本控制或正在進(jìn)行代碼檢查的一個(gè)獨(dú)立的更改。其他組織通常稱為“改變”或“補(bǔ)丁”。
LGTM:意思是“在我看來(lái)不錯(cuò)(Looks Good to Me)”,這是代碼審閱者在批準(zhǔn) CL 時(shí)說(shuō)的。
那么 ,代碼審查者指南都在審查什么呢?代碼審查應(yīng)該查看:
- 設(shè)計(jì):代碼是否經(jīng)過(guò)精心設(shè)計(jì)并適合你的系統(tǒng)?
- 功能:代碼的行為是否與作者的意圖相同?代碼的行為方式對(duì)用戶有好處嗎?
- 復(fù)雜性:代碼可以變得更簡(jiǎn)單嗎?以后其他開(kāi)發(fā)人員閱讀此代碼時(shí)是否能夠輕松理解并使用
- 測(cè)試:代碼是否具有正確且設(shè)計(jì)良好的自動(dòng)化測(cè)試?
- 命名:開(kāi)發(fā)人員是否為變量,類,方法等設(shè)置了易于理解的命名?
- 注釋:評(píng)代碼注釋是否清晰并且有用?
- 風(fēng)格:代碼是否遵循標(biāo)準(zhǔn)的編寫風(fēng)格?
- 文檔:開(kāi)發(fā)人員是否也更新了相關(guān)文檔?
整個(gè)代碼評(píng)審指南分為了很多模塊,我們也沒(méi)辦法全部介紹一遍。感興趣的伙伴們可以自行詳細(xì)查閱
目前,eng-practices已經(jīng)在GitHub上標(biāo)星16.2K,1.6K 個(gè)Fork(GitHub地址:https://github.com/google/eng-practices/blob/master/review/index.md)
該項(xiàng)目最近更新顯示是昨日,對(duì)其中一個(gè)文件進(jìn)行更改,包含2個(gè)增加和2個(gè)刪除,具體更新如下: