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 鼓勵(lì)的 13 條代碼審查標(biāo)準(zhǔn),建議收藏!

        共 3183字,需瀏覽 7分鐘

         ·

        2021-01-13 10:11




        點(diǎn)擊上方藍(lán)字關(guān)注我們





        點(diǎn)擊上方“印象python”,選擇“星標(biāo)”公眾號(hào)
        重磅干貨,第一時(shí)間送達(dá)!

        作者 |?Rafiullah Hamedy

        譯者 |?彎月,責(zé)編 | 楊碧玉

        出品 | CSDN(ID:CSDNnews)

        以下為譯文:

        在本文中,我們將簡(jiǎn)要介紹13條代碼審查標(biāo)準(zhǔn),希望能夠通過(guò)這些標(biāo)準(zhǔn)極大地幫助改善軟件的質(zhì)量,同時(shí)讓開(kāi)發(fā)人員保持心情愉悅。
        代碼審查是開(kāi)發(fā)過(guò)程中的一個(gè)環(huán)節(jié),顧名思義,代碼審查需要一位或多位開(kāi)發(fā)人員審查另一位開(kāi)發(fā)人員(即代碼的作者)編寫(xiě)的代碼,以確保:
        • 代碼沒(méi)有任何錯(cuò)誤,沒(méi)有bug,也沒(méi)有問(wèn)題;

        • 代碼符合質(zhì)量與樣式指南的要求和標(biāo)準(zhǔn);

        • 代碼完成了所有預(yù)期功能;

        • 合并代碼后,代碼庫(kù)仍然能夠正常運(yùn)行,且達(dá)到更好的狀態(tài)。
        這就是為什么代碼審查是軟件開(kāi)發(fā)的重要環(huán)節(jié)的原因。代碼審查者擔(dān)當(dāng)著把關(guān)者的職責(zé),負(fù)責(zé)決定這些代碼是否能夠成為代碼庫(kù)的一部分并進(jìn)入生產(chǎn)環(huán)境。
        Google以其卓越的技術(shù)而聞名世界,他們擁有高效的代碼審查標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)突出了審查代碼時(shí)需要牢記的一些重點(diǎn)。

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

        ——?Google工程實(shí)踐文檔

        以下是審查代碼時(shí)你需要牢記的一些重點(diǎn)。

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


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


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



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

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

        “關(guān)鍵在于,世上沒(méi)有完美的代碼,只有更好的代碼?!?

        ——?Google工程實(shí)踐文檔

        如果手頭沒(méi)有緊急任務(wù),那么請(qǐng)?jiān)诖a提交上來(lái)后立即進(jìn)行審查。響應(yīng)拉取請(qǐng)求的時(shí)間最長(zhǎng)不得超過(guò)一個(gè)工作日。一天之內(nèi),應(yīng)針對(duì)一次拉取請(qǐng)求完成多輪的部分或完整的代碼審查。



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


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



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


        請(qǐng)始終牢記,樣式指南、編程標(biāo)準(zhǔn)以及相關(guān)的文檔應(yīng)該作為代碼審查的絕對(duì)權(quán)威。例如,制表符與空格的使用應(yīng)保持一致,此時(shí)你可以引用編程約定。
        如果你選用的是Java,那么以下文章可能會(huì)有所幫助,文中總結(jié)了大型科技公司Java編程的最佳實(shí)踐:《Java編程最佳實(shí)踐摘要》(https://rhamedy.medium.com/a-short-summary-of-java-coding-best-practices-31283d0167d3)


        解決代碼審查沖突


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

        如果你的意見(jiàn)是可選或不怎么重要的,請(qǐng)?jiān)谧⑨屩姓f(shuō)明,然后由作者來(lái)決定是解決還是略過(guò)。
        作為代碼審查者,在沒(méi)有樣式指南或編程標(biāo)準(zhǔn)的情況下,你至少可以建議此次代碼變更與其余代碼庫(kù)保持一致。



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

        如果代碼變更涉及用戶界面變化,則除了代碼審查外,還需要提供演示,確保界面符合預(yù)期且與界面設(shè)計(jì)一致。
        對(duì)于前端代碼變更,你需要進(jìn)行演示,或確保代碼變更包括必要的UI自動(dòng)化測(cè)試,以驗(yàn)證添加或更新的功能。



        確保代碼審查中包含了所有測(cè)試

        除非遇到緊急情況,否則拉取請(qǐng)求應(yīng)包含所有必要的測(cè)試,例如單元測(cè)試、集成測(cè)試以及端到端測(cè)試等。
        這里所說(shuō)的緊急情況指的是,某個(gè)需要盡快修復(fù)的bug或安全漏洞,而測(cè)試可以等到以后再添加。在這種情況下,請(qǐng)確保創(chuàng)建了適當(dāng)?shù)钠弊C/問(wèn)題,并確保有人負(fù)責(zé)在完成熱修復(fù)或部署后立即完成測(cè)試。

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



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


        如果你正在專心致志地工作,那么請(qǐng)不要打斷自己,因?yàn)槟阈枰ㄙM(fèi)很長(zhǎng)時(shí)間才能重新投入工作。換句話說(shuō),打斷專心工作的開(kāi)發(fā)人員所付出的代價(jià)遠(yuǎn)遠(yuǎn)超過(guò)了讓開(kāi)發(fā)人員等待代碼審查。你可以在休息(午餐或咖啡等)過(guò)后,進(jìn)行代碼審查。

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



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


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

        確保你理解正在審核的代碼。如果不理解,則請(qǐng)作者澄清或提供代碼演示和解釋。如果你不具備審核部分代碼的資格,則請(qǐng)其他有資格的開(kāi)發(fā)人員代為審查。



        審查代碼時(shí)需要保持大局觀


        從更廣闊的視野來(lái)看待代碼變更會(huì)更有幫助。例如,某個(gè)文件被修改,并添加了4行新代碼。請(qǐng)不要只看這4行代碼,你應(yīng)該考慮審查整個(gè)文件,并檢查新添加的內(nèi)容。它們是否會(huì)降低現(xiàn)有代碼的質(zhì)量?它們是否會(huì)導(dǎo)致現(xiàn)有功能成為重構(gòu)的候選對(duì)象?
        如果不在函數(shù)/方法或類的背景下審查添加的代碼,則隨著時(shí)間的流逝,你將會(huì)得到一個(gè)面臨無(wú)法維護(hù)、糾纏不清、不易于測(cè)試等問(wèn)題的類,而且這個(gè)類很難擴(kuò)展或重構(gòu)。
        請(qǐng)記住,即便是微不足道的改進(jìn),隨著時(shí)間的推移,也可能導(dǎo)致產(chǎn)品出現(xiàn)缺陷,同樣,即便是輕微的代碼降級(jí)或技術(shù)負(fù)債也可能在日積月累下導(dǎo)致產(chǎn)品難以維護(hù)和擴(kuò)展。


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


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


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


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


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


        每當(dāng)代碼審查意見(jiàn)提出替代方案或指出某些問(wèn)題時(shí),重要的是你需要解釋其中的原因,并根據(jù)個(gè)人的知識(shí)和經(jīng)驗(yàn)提供示例,以幫助開(kāi)發(fā)人員理解為何你的建議能夠提升代碼質(zhì)量。
        在建議修改或變更代碼時(shí),你需要在如何指導(dǎo)作者修改代碼方面找到適當(dāng)?shù)钠胶狻@?,我更喜歡指導(dǎo)、解釋、提示或建議,而不是整個(gè)解決方案。
        感謝你的閱讀,希望你喜歡這篇文章。如果有任何意見(jiàn)或建議,請(qǐng)?jiān)谙路搅粞浴?/span>
        原文:https://medium.com/better-programming/13-code-review-standards-inspired-by-google-6b8f99f7fd67
        本文為 CSDN 翻譯,轉(zhuǎn)載請(qǐng)注明來(lái)源出處。


        回復(fù)下方 「關(guān)鍵詞」,獲取優(yōu)質(zhì)資源


        回復(fù)關(guān)鍵詞 「linux」,即可獲取 185 頁(yè) Linux 工具快速教程手冊(cè)和154頁(yè)的Linux筆記。


        回復(fù)關(guān)鍵詞 「Python進(jìn)階」,即可獲取 106 頁(yè) Python 進(jìn)階文檔 PDF


        回復(fù)關(guān)鍵詞 「Python面試題」,即可獲取最新?100道?面試題 PDF


        回復(fù)關(guān)鍵詞 「python數(shù)據(jù)分析」,即可獲取47頁(yè)python數(shù)據(jù)分析與自然語(yǔ)言處理的 PDF


        回復(fù)關(guān)鍵詞 「python爬蟲(chóng)」,滿滿五份PPT爬蟲(chóng)教程和70多個(gè)案例


        回復(fù)關(guān)鍵詞 「Python最強(qiáng)基礎(chǔ)學(xué)習(xí)文檔」,即可獲取 168 頁(yè) Python 最強(qiáng)基礎(chǔ)學(xué)習(xí)文檔 PDF,讓你快速入門Python

        推薦我的微信號(hào)

        來(lái)圍觀我的朋友圈,我的經(jīng)驗(yàn)分享,技術(shù)更新,不定期送書(shū),坑位有限,速速掃碼添加!
        備注:開(kāi)發(fā)方向_昵稱_城市,另送你10本Python電子書(shū)。





        點(diǎn)個(gè)在看你最好看




        瀏覽 72
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        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>
            国产一区二三区免费A片惊变 | 日韩精品三级 | 操少妇逼视频 | 中国妇女裸体性开放 | 亚州一区| 91人妻人人澡人人 | 青草草在线 | 越南BBBBBBBBB视频 | 色护士影院 | 女人28片毛片60分钟 |