文章來源:http://www.zghlxwxcb.cn/news/detail-751911.html
1.?行為準(zhǔn)則
文章來源地址http://www.zghlxwxcb.cn/news/detail-751911.html
2.?代碼評(píng)審
2.1.?代碼評(píng)審是一種給予和接受反饋的專門的形式
2.1.1.?大多數(shù)團(tuán)隊(duì)會(huì)在合并代碼的修改之前進(jìn)行代碼評(píng)審
2.1.2.?評(píng)審不是一個(gè)證明你有多聰明的機(jī)會(huì),也不是一個(gè)橡皮圖章式的官僚主義障礙
2.2.?高質(zhì)量的代碼評(píng)審文化有助于所有具有不同經(jīng)驗(yàn)水平的工程師的成長(zhǎng),并促進(jìn)他們對(duì)代碼庫(kù)的共同理解
2.3.?糟糕的代碼評(píng)審文化會(huì)抑制創(chuàng)新,減慢開發(fā)速度,并且導(dǎo)致滋生怨恨情緒
2.3.1.?執(zhí)行不力的代碼評(píng)審會(huì)成為一種有害的阻礙
2.3.2.?輕率的反饋不提供任何價(jià)值,還會(huì)拖慢開發(fā)人員的速度
2.3.3.?緩慢的周轉(zhuǎn)時(shí)間會(huì)使代碼的變化停滯不前
2.3.4.?如果沒有正確的評(píng)審文化,開發(fā)人員可能會(huì)陷入反復(fù)拉鋸扯皮的分歧中,這可能會(huì)毀掉一個(gè)團(tuán)隊(duì)
3.?為什么需要評(píng)審代碼
3.1.?評(píng)審可以捕捉bug并保持代碼整潔
3.1.1.?代碼評(píng)審的價(jià)值不僅僅是讓人來代替自動(dòng)測(cè)試和代碼質(zhì)量檢查工具
3.2.?優(yōu)秀的代碼評(píng)審可以作為一個(gè)教學(xué)工具,傳播認(rèn)識(shí),記錄實(shí)現(xiàn)的決策,并提供代碼的更改記錄以確保安全性與合規(guī)性
3.2.1.?你可以從別人評(píng)審你的代碼給予的反饋中學(xué)習(xí)
3.2.2.?評(píng)審者會(huì)指出那些你可能不知道的有用的類庫(kù)和編碼實(shí)踐
3.3.?代碼評(píng)審也是了解你的團(tuán)隊(duì)的編碼風(fēng)格的一種簡(jiǎn)單方法
3.4.?評(píng)審整個(gè)代碼庫(kù)的變更可以確保不止一個(gè)人熟悉生產(chǎn)環(huán)境中代碼的每一行,對(duì)代碼庫(kù)的共同理解有助于團(tuán)隊(duì)更有凝聚力地?cái)U(kuò)展代碼
3.4.1.?讓別人知道你在改什么,意味著一旦出現(xiàn)了問題,你不是團(tuán)隊(duì)中唯一可以仰仗的人
3.5.?被記錄下來的評(píng)審意見也是一種文檔
3.5.1.?解釋了為什么事情會(huì)這樣做
3.5.2.?需要以某種特定方式編寫代碼的原因并不總是顯而易見的
3.5.3.?可以作為實(shí)現(xiàn)決策的檔案
3.5.4.?有舊的代碼評(píng)審作為參考,可以為開發(fā)人員提供一份書面的歷史記錄
3.6.?安全性和合規(guī)性政策通常規(guī)定了代碼評(píng)審作為一項(xiàng)防范措施來防止任何一名開發(fā)人員惡意修改代碼庫(kù)
4.?當(dāng)你的代碼被評(píng)審時(shí)
4.1.?一個(gè)精心準(zhǔn)備的評(píng)審請(qǐng)求可以使開發(fā)人員很容易理解你在做什么并提供有建設(shè)性的反饋
4.1.1.?保持單個(gè)代碼的小幅改動(dòng),將特性和重構(gòu)工作分到不同的評(píng)審中,并寫出描述性的提交信息,務(wù)必將注釋和測(cè)試包括在內(nèi)
4.2.?用評(píng)審草案降低風(fēng)險(xiǎn)
4.2.1.?代碼修改的草案是一種思考和提出相應(yīng)修改的很棒的方式,這種方式不需要投入那么多時(shí)間來編寫測(cè)試、打磨代碼和添加文檔
4.3.?提交評(píng)審請(qǐng)勿觸發(fā)測(cè)試
4.3.1.?在本地調(diào)試某項(xiàng)失敗的測(cè)試比在CI環(huán)境中更容易一些
4.3.2.?不能在遠(yuǎn)程計(jì)算機(jī)上附加調(diào)試器或輕松地獲取調(diào)試信息
4.4.?預(yù)排大體量的代碼修改
4.4.1.?預(yù)排會(huì)議
4.4.1.1.?walk-through
4.4.1.2.?一種面對(duì)面的會(huì)議,開發(fā)人員在會(huì)上共享他們的屏幕,并引導(dǎo)隊(duì)友了解正在進(jìn)行的修改內(nèi)容
4.4.1.3.?是啟發(fā)想法和讓你的團(tuán)隊(duì)適應(yīng)代碼修改的好方法
4.5.?評(píng)審意見是針對(duì)代碼的,而不是針對(duì)你個(gè)人的
4.5.1.?甚至都不算是你的代碼,將來整個(gè)團(tuán)隊(duì)會(huì)擁有這些代碼
4.5.2.?得到很多評(píng)論是一種完全正常的現(xiàn)象,尤其當(dāng)你是團(tuán)隊(duì)中經(jīng)驗(yàn)不足的開發(fā)者之一時(shí)
4.6.?保持同理心,但不要容忍粗魯
4.7.?不要羞于要求別人評(píng)審你的代碼
4.7.1.?讓代碼評(píng)審一直懸而未決是不體諒他人的做法
5.?評(píng)審別人的代碼時(shí)
5.1.?分流評(píng)審請(qǐng)求
5.1.1.?當(dāng)你收到評(píng)審請(qǐng)求的通知時(shí),你作為評(píng)審者的工作就開始了
5.1.2.?大多數(shù)的修改是不那么緊急的
5.1.2.1.?如果緊急度不明確,請(qǐng)?jiān)儐柼峤徽?/h4>
5.1.3.?你不需要評(píng)審每一項(xiàng)代碼修改,要專注于那些你可以從中學(xué)習(xí)的修改和你熟悉的代碼
5.2.?給評(píng)審預(yù)留時(shí)間
5.2.1.?代碼評(píng)審類似于運(yùn)維工作,其規(guī)模和頻率在某種程度上無法預(yù)知
5.2.2.?大型的代碼評(píng)審可能需要進(jìn)行額外的計(jì)劃
5.3.?理解修改的意圖
5.3.1.?不要一上來就以提交評(píng)論的方式開始你的評(píng)審工作,首先要閱讀并提出問題
5.4.?提供全面的反饋
5.4.1.?需要對(duì)代碼修改的正確性、可實(shí)施性、可維護(hù)性、可讀性和安全性提供反饋
5.4.2.?指出那些違反代碼風(fēng)格手冊(cè)、難以閱讀或令人困惑的代碼
5.4.3.?閱讀測(cè)試用例并尋找bug以驗(yàn)證代碼的正確性
5.4.4.?尋找OWASP十大違規(guī)行為
5.4.4.1.?SQL注入攻擊、敏感數(shù)據(jù)泄露和跨站腳本攻擊的漏洞
5.5.?要承認(rèn)優(yōu)點(diǎn)
5.5.1.?代碼評(píng)審不一定全都是負(fù)面的評(píng)論
5.6.?區(qū)分問題、建議和挑剔
5.6.1.?并非所有的評(píng)審意見都有相同的重要性
5.6.2.?重大問題需要比中性的建議和膚淺的挑剔投入更多的關(guān)注
5.6.3.?在反饋前加上“可選”(optional)、“接受或不接受”(take it or leave it)或“非必須”(nonblocking)的字樣
5.7.?不要只做橡皮圖章
5.7.1.?可能會(huì)迫于壓力,在沒有真正看清楚的情況下就批準(zhǔn)了某項(xiàng)評(píng)審
5.7.2.?要抵制那種用草率批準(zhǔn)的方式快速給評(píng)審蓋上橡皮圖章的誘惑,橡皮圖章式的評(píng)審是有害的
5.7.3.?期望一次性就能充分評(píng)審一項(xiàng)巨大的代碼改動(dòng)是不合理的
5.8.?不要只局限于使用網(wǎng)頁版的評(píng)審工具
5.8.1.?代碼評(píng)審?fù)ǔT谝粋€(gè)專門的UI中處理
5.8.2.?代碼評(píng)審本身也只是代碼而已
5.9.?不要忘記評(píng)審測(cè)試代碼
5.9.1.?評(píng)審者經(jīng)常會(huì)忽略測(cè)試代碼,特別是當(dāng)變更比較大的時(shí)候
5.9.2.?測(cè)試代碼應(yīng)該像代碼的其他部分一樣被評(píng)審
5.9.3.?一定要檢查測(cè)試代碼的可維護(hù)性和清潔度
5.10.?⑩推動(dòng)決斷
5.10.1.?不要成為促成“夭折”的原因,要幫助提交者評(píng)審以迅速批準(zhǔn)他們的代碼
5.10.2.?堅(jiān)持質(zhì)量,但不要成為不可逾越的障礙
5.10.3.?尊重正在進(jìn)行的修改的范圍
5.10.4.?如果對(duì)代碼修改有重大分歧,而你和作者又不能解決分歧的話,請(qǐng)主動(dòng)提出把這個(gè)問題移交給其他專家,他們可以幫助解決相關(guān)分歧
到了這里,關(guān)于讀程序員的README筆記09_代碼評(píng)審的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!