1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Google 鼓勵的 13 條代碼審查標(biāo)準(zhǔn),建議收藏!

        共 3148字,需瀏覽 7分鐘

         ·

        2020-12-16 23:30

        點擊上方藍(lán)色“程序猿DD”,選擇“設(shè)為星標(biāo)”

        回復(fù)“資源”獲取獨(dú)家整理的學(xué)習(xí)資料!

        作者 |?Rafiullah Hamedy

        來源 |?https://medium.com/better-programming/13-code-review-standards-inspired-by-google-6b8f99f7fd67

        以下為譯文:

        在本文中,我們將簡要介紹13條代碼審查標(biāo)準(zhǔn),希望能夠通過這些標(biāo)準(zhǔn)極大地幫助改善軟件的質(zhì)量,同時讓開發(fā)人員保持心情愉悅。

        代碼審查是開發(fā)過程中的一個環(huán)節(jié),顧名思義,代碼審查需要一位或多位開發(fā)人員審查另一位開發(fā)人員(即代碼的作者)編寫的代碼,以確保:

        • 代碼沒有任何錯誤,沒有bug,也沒有問題;
        • 代碼符合質(zhì)量與樣式指南的要求和標(biāo)準(zhǔn);
        • 代碼完成了所有預(yù)期功能;
        • 合并代碼后,代碼庫仍然能夠正常運(yùn)行,且達(dá)到更好的狀態(tài)。

        這就是為什么代碼審查是軟件開發(fā)的重要環(huán)節(jié)的原因。代碼審查者擔(dān)當(dāng)著把關(guān)者的職責(zé),負(fù)責(zé)決定這些代碼是否能夠成為代碼庫的一部分并進(jìn)入生產(chǎn)環(huán)境。

        Google以其卓越的技術(shù)而聞名世界,他們擁有高效的代碼審查標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)突出了審查代碼時需要牢記的一些重點。關(guān)注公眾號Java技術(shù)?;貜?fù):GG規(guī)范,還能獲取一份完整的 Google 開發(fā)規(guī)范。

        在Google,“代碼審查的主要目的是確保Google代碼庫內(nèi)整體的代碼運(yùn)行狀況能夠不斷提升?!?—— Google工程實踐文檔

        以下是審查代碼時你需要牢記的一些重點。

        代碼審查標(biāo)準(zhǔn):

        這些代碼能夠提升系統(tǒng)整體的運(yùn)行狀況

        每次代碼變更(拉取請求)都能夠提升系統(tǒng)整體的運(yùn)行狀況。重點在于,即便是很小的改進(jìn),合并代碼后都會提升軟件或代碼庫的運(yùn)行狀況。

        快速審查代碼,并給出積極地響應(yīng)和反饋

        首先也是最重要的一點,不可延誤代碼的合并。世上沒有完美的代碼。如果代碼可以提升系統(tǒng)的整體運(yùn)行狀況,則應(yīng)該立即交付這些代碼。

        “關(guān)鍵在于,世上沒有完美的代碼,只有更好的代碼?!?—— Google工程實踐文檔

        如果手頭沒有緊急任務(wù),那么請在代碼提交上來后立即進(jìn)行審查。響應(yīng)拉取請求的時間最長不得超過一個工作日。一天之內(nèi),應(yīng)針對一次拉取請求完成多輪的部分或完整的代碼審查。

        在代碼審查的過程中開展教育和啟發(fā)

        在代碼審查的過程中,應(yīng)盡可能通過共享知識和經(jīng)驗提供指導(dǎo)。

        審查代碼應(yīng)遵循標(biāo)準(zhǔn)

        請始終牢記,樣式指南、編程標(biāo)準(zhǔn)以及相關(guān)的文檔應(yīng)該作為代碼審查的絕對權(quán)威。例如,制表符與空格的使用應(yīng)保持一致,此時你可以引用編程約定。

        如果你選用的是Java,那么以下文章可能會有所幫助,文中總結(jié)了大型科技公司Java編程的最佳實踐:《Java編程最佳實踐摘要》(https://rhamedy.medium.com/a-short-summary-of-java-coding-best-practices-31283d0167d3)

        解決代碼審查沖突

        解決代碼審查沖突時,應(yīng)遵循樣式指南以及編程標(biāo)準(zhǔn)中商定的最佳實踐,并征求其他擁有更多產(chǎn)品領(lǐng)域知識和經(jīng)驗的人的建議。

        如果你的意見是可選或不怎么重要的,請在注釋中說明,然后由作者來決定是解決還是略過。

        作為代碼審查者,在沒有樣式指南或編程標(biāo)準(zhǔn)的情況下,你至少可以建議此次代碼變更與其余代碼庫保持一致。

        演示UI變更是代碼審查的一部分

        如果代碼變更涉及用戶界面變化,則除了代碼審查外,還需要提供演示,確保界面符合預(yù)期且與界面設(shè)計一致。

        對于前端代碼變更,你需要進(jìn)行演示,或確保代碼變更包括必要的UI自動化測試,以驗證添加或更新的功能。

        確保代碼審查中包含了所有測試

        除非遇到緊急情況,否則拉取請求應(yīng)包含所有必要的測試,例如單元測試、集成測試以及端到端測試等。

        這里所說的緊急情況指的是,某個需要盡快修復(fù)的bug或安全漏洞,而測試可以等到以后再添加。在這種情況下,請確保創(chuàng)建了適當(dāng)?shù)钠弊C/問題,并確保有人負(fù)責(zé)在完成熱修復(fù)或部署后立即完成測試。

        我們絕對不可以跳過測試。如果時間有限,某些目標(biāo)有無法實現(xiàn)的風(fēng)險,那么解決方案不是跳過測試,而是限定可交付成果的范圍。

        不要為了代碼審查打斷手頭的工作

        如果你正在專心致志地工作,那么請不要打斷自己,因為你需要花費(fèi)很長時間才能重新投入工作。換句話說,打斷專心工作的開發(fā)人員所付出的代價遠(yuǎn)遠(yuǎn)超過了讓開發(fā)人員等待代碼審查。你可以在休息(午餐或咖啡等)過后,進(jìn)行代碼審查。

        大多數(shù)時候,整個代碼審查以及代碼的合并無法在一天內(nèi)完成。重要的是迅速給作者一些反饋。例如,雖然可能無法完成完整的審查,但你可以快速指出一些有待探討的地方。這可以極大地降低代碼審查期間的挫敗感。

        審查所有代碼,不要做任何假設(shè)

        你需要審查提交上來的每一行代碼。不要對人工編寫的類和方法做任何假設(shè),而且應(yīng)該確保你理解代碼在做什么。

        確保你理解正在審核的代碼。如果不理解,則請作者澄清或提供代碼演示和解釋。如果你不具備審核部分代碼的資格,則請其他有資格的開發(fā)人員代為審查。關(guān)注公眾號Java技術(shù)?;貜?fù):GG規(guī)范,還能獲取一份完整的 Google 開發(fā)規(guī)范。

        審查代碼時需要保持大局觀

        從更廣闊的視野來看待代碼變更會更有幫助。例如,某個文件被修改,并添加了4行新代碼。請不要只看這4行代碼,你應(yīng)該考慮審查整個文件,并檢查新添加的內(nèi)容。它們是否會降低現(xiàn)有代碼的質(zhì)量?它們是否會導(dǎo)致現(xiàn)有功能成為重構(gòu)的候選對象?

        如果不在函數(shù)/方法或類的背景下審查添加的代碼,則隨著時間的流逝,你將會得到一個面臨無法維護(hù)、糾纏不清、不易于測試等問題的類,而且這個類很難擴(kuò)展或重構(gòu)。

        請記住,即便是微不足道的改進(jìn),隨著時間的推移,也可能導(dǎo)致產(chǎn)品出現(xiàn)缺陷,同樣,即便是輕微的代碼降級或技術(shù)負(fù)債也可能在日積月累下導(dǎo)致產(chǎn)品難以維護(hù)和擴(kuò)展。

        在代碼審查期間認(rèn)同和鼓勵出色的工作

        如果看到出色的代碼變更,請別忘了大力表揚(yáng)和鼓勵作者。代碼審查的目的不僅僅是發(fā)現(xiàn)錯誤,而且還應(yīng)該鼓勵和指導(dǎo)開發(fā)人員出色的工作。

        在代碼審查期間應(yīng)保持謹(jǐn)慎、尊重、友善和思路清晰

        在代碼審查期間,你應(yīng)該保持友善、思路清晰、有禮貌和尊重別人,這一點至關(guān)重要,同時也要給予作者清晰的反饋和積極的幫助。在審查代碼時,你需要做到對事不對人,即對代碼做出評論,而非開發(fā)人員。

        詳細(xì)解釋代碼審查的意見,并注意尺度

        每當(dāng)代碼審查意見提出替代方案或指出某些問題時,重要的是你需要解釋其中的原因,并根據(jù)個人的知識和經(jīng)驗提供示例,以幫助開發(fā)人員理解為何你的建議能夠提升代碼質(zhì)量。在建議修改或變更代碼時,你需要在如何指導(dǎo)作者修改代碼方面找到適當(dāng)?shù)钠胶?。例如,我更喜歡指導(dǎo)、解釋、提示或建議,而不是整個解決方案。

        DD自研的滬牌代拍業(yè)務(wù),點擊直達(dá)


        【往期推薦】

        又一個智商稅產(chǎn)品“路由器防輻射籠”,信號都沒了,還能火爆全網(wǎng)...

        2020-12-10

        滴滴十大技術(shù)方向開源項目出爐!

        2020-12-10

        Github 2020年度報告:你以為新冠擊潰了開發(fā)者?不!他們創(chuàng)造了更多代碼...

        2020-12-09

        用了3年CAT,這次我想選擇SkyWalking,老板反手就是一個贊!

        2020-12-09

        Spring MVC 過時了嗎?

        2020-12-08

        因貢獻(xiàn)Linux社區(qū)被Linus關(guān)注,受公司10萬期權(quán)獎勵!酷派重回大眾視野...

        2020-12-08



        掃一掃,關(guān)注我

        一起學(xué)習(xí),一起進(jìn)步

        每周贈書,福利不斷

        深度內(nèi)容

        推薦加入


        歡迎加入知識星球,一起探討技術(shù)架構(gòu),交流技術(shù)人生。
        加入方式,長按下方二維碼:
        已在知識星球更新如下:

        素質(zhì)二連,走一個


        瀏覽 25
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            操逼撸管 | 公车上的奶水诗锦全文阅读 | 玖玖玖视频 | 岳的乱系列18部分部分 | 女人一级毛片免费看 | 成人毛片视频在现观看 | 国产91高潮流白浆在线麻豆 | 国内精品久久久久久2021浪潮 | 欧美日韩一级A片免费观看 | 人人操成人网站 |