Github 官方給出的代碼審查指導原則

2020-12-17 開源中國

這篇文章的內容由github官方提供,指導你如何在github上進行代碼審查和如何讓別人審查自己的代碼。

針對所有人的審查

  • 接受這樣的事實:很多編程上的主張都是一種個人觀點。應該討論它們的利與弊,提出你的傾向觀點,迅速的達成一種解決方案。
  • 提問,而不是命令。(「把這個變量命名成:user_id你覺得怎樣?」)
  • 請求說明。(「我不明白。你能解釋一下嗎?」)
  • 避免代碼的歸屬之爭。(「我的」,「不是我的」,「你的」)
  • 避免使用一些會被認為是有關人身特徵的詞語。(「笨蛋」,「愚蠢」)要把所有人都看作是有魅力的、聰明的、善意的。
  • 要明確。要記著並不是每個人都能理解你的意圖。
  • 要謙虛。(「我不能確定——我們來分析一下。」)
  • 不要用誇張修辭語。(「總是」,「從不」,「永遠」,「毫無…」)
  • 不要諷刺。
  • 展現真實的你。如果你不是幽默型的人,不喜歡使用一些表情符號或動畫gif圖,不要勉強。如果你是這種人,請自信的發揮。
  • 如果有太多的「我不理解」或「另一種方案:」的評論,請專門針對這個人進行交流。可以把你們線下的交流總結成一個帖子附在後面。

讓別人審查你的代碼

  • 對審查者的建議表示感激。(「謝謝提醒。我會把它改正。」)
  • 理解審查是對事不對人。審查的是你的代碼,而不是你。
  • 解釋為什麼代碼寫成這樣。(「因為xxx原因我才寫成這樣。如果我把這個類/文件/方法/變量改個名會更清晰些嗎?」)
  • 整理所作的改動,在以後的迭代中重構它們。
  • 在做修改的版本上註明代碼審查的連結。(「Ready for review: http://github.com/organization/project/pull/1″)
  • push提交要基於最早的一輪反饋,並形成一個獨立的分支。等這個分支上的任務完全完成了再合併。這讓審查者能夠根據早先的反饋找到你的單獨的更新。
  • 努力站在審查者的立場上理解。
  • 爭取回復每個評論。
  • 直到最後一個人退出登錄後再合併分支。
  • 直到持續集成測試(TDDium, TravisCI,等)告訴你這個分支的測試套件通過後再合併分支。

代碼審查的過程

先要清楚你提交的代碼的必要性(是修補bug,提升用戶體驗,重構…)。然後:

  • 針對你感覺非常好的地方以及不是很好的地方與作者交流。
  • 找出既能解決問題又能簡化代碼的方法。
  • 如果討論變得過於哲學或理論,把討論轉到線下,做成一個有規律的每周五下午的討論會。同時,是否採用你提出的實現方案,讓作者自己做決定。
  • 提出你的實現方案,但要表現出作者也在考慮這種方案。(「你覺得這裡用一個自定義校驗如何?」)
  • 努力理解作者的立場。
  • pull請求登出時,加一個 👍 或「可以合併了」的注釋。

關於程序風格樣式的評論注釋

審查者應該對那些不符合樣式指導的地方進行注釋。例如這樣注釋:

[Style](../style):> 按名稱的字母順序排列多個路由。

對上面這個提醒的一個回復的例子:

哦。你眼真尖,謝謝。已在 a4994ec 修復。

如果你不同意某個指導原則,請在指導repo裡創建一個問題,而不要再代碼審查中爭論它。同時,請運用這個指導原則。

相關焦點

  • GitHub官方代碼掃描工具上線,免費查找漏洞
    在 GitHub 發布項目之前,你可以用免費的官方代碼掃描程序來檢查 Bug 了。機器之心報導,作者:蛋醬編程很難,難就難在常有 Bug 而不自知。有程式設計師調侃:「我不是在寫代碼,我是在寫 Bug。」經過幾個月來眾多開發者的的測試與反饋,九月的最後一天,GitHub 宣布「代碼掃描」正式上線了。目前,代碼掃描面向公共存儲庫是免費的。此外,面向使用 GitHub Enterprise 團隊,代碼掃描功能是 GitHub Advanced Security 的一部分,能夠幫助團隊更早地查找出項目中的安全漏洞。
  • GitHub官方app下載
    GitHub官方app下載軟體介紹:GitHub是全球技術開發者的聖地,現在github終於出了官方移動版,下載GitHub,讓你在手機上隨時隨時上GitHub來進行開發交流。持創建、管理、討論,可過濾問題列表和書籤,以便快速存取。
  • GitHub官方開源新命令行工具
    開源最前線(ID:OpenSourceTop) 猿妹綜合整理近日,GitHub 發布命令列工具 (Beta) 測試版,官方表示,GitHub CLI提供了一種更簡單、更無縫的方法來使用Github。貢獻者可以利用GitHub CLI搜尋開源項目並複製(Clone)該儲存庫,並且能看到由項目維護者釋出,已標註需要幫助標籤的問題。接著,開發者就能直接從GitHub CLI開啟瀏覽器,取得問題的詳細信息。開發者可以創建分支,提交幾次修復程序代碼以修復問題所描述的Bug,並且創建拉取請求分享貢獻。
  • 優化GitHub代碼審查 微軟收購Pull Panda
    微軟計劃通過本次收購,使用Pull Panda的技術來優化GitHub上的代碼審查工作流程。Pull Panda成立至今僅有一年半的時間,通過提供Pull Reminders、Pull Analytics和Pull Assigner來優化代碼審核流程。Pull Reminders允許開發者通知開發人員協作者需要他們的評審。
  • GitHub 開源官方命令行工具登頂 TOP1,5 分鐘極速上手!
    作者 | Nabil Nalakath譯者 | 彎月,責編 | 唐小引頭圖 | CSDN多年來,作為全球最受歡迎的代碼託管平臺 GitHub 竟然一直沒有提供官方的 CLI 工具。畢竟 GitHub 是開放原始碼項目中最常用的平臺,難免讓人感到驚訝。
  • GitHub Desktop全新免費的Github官方桌面客戶端
    而 GitHub.com則是目前全球最熱門的公共代碼倉庫網站,多到數不清的知名開源項目原始碼都是託管在它上面。GitHubDesktop 免費的 Github 官方桌面客戶端首先,我先對GitHub來一個簡單的介紹,GitHub有一個很強大的功能就是,你在伺服器上邊可以創建一個庫(稍後會介紹怎麼創建),寫代碼是一件很重的任務,尤其是很多人完成一個很大的項目的時候,就十分的複雜,一群人一起來寫某個項目,大家完成的時間,完成的進度都是不相同的,你寫一點我寫一點,甚至可能你今天寫的出現了錯誤
  • 國家藥監局發布7項醫療器械註冊技術審查指導原則
    原標題:國家藥監局發布7項醫療器械註冊技術審查指導原則(記者滿雪) 12月9日,國家藥品監督管理局發布7項醫療器械註冊技術審查指導原則,指導相關醫療器械技術申報,同時為技術審評部門審評註冊申報資料提供參考。
  • GitHub被黑!不明人士冒充CEO洩露其機密原始碼
    從開發者Resynth 發表的一篇博客中了解到,在一個向 GitHub 官方 DMCA 倉庫提交的可疑 Commit 中,一名不明身份人員利用 GitHub 應用程式中的bug 假冒GitHub CEO 奈特·弗裡德曼 (
  • 終於Github App支持中文簡體了!
    2018 年 6 月 4 日,微軟宣布,通過 75 億美元的股票交易收購代碼託管平臺 GitHub。藉助手機APP,用戶可以審查代碼、合併更改、瀏覽消息通知、回應評論、分享反饋等。特別的,如果在iPad上使用,還支持分欄視圖,進一步提高操作效率。
  • 《郵政業機構代碼編制規則》行業標準審查通過
    4月18日,全國郵政業標準化技術委員會在北京召開2013年度第二次工作會議,審查通過了《郵政業機構代碼編制規則》行業標準。國家郵政局副局長趙曉光出席會議並講話。    趙曉光在講話中指出,機構代碼是實現郵政行業管理現代化的重要基礎。
  • 最新3D列印患者匹配植入物註冊技術審查指導原則要點解讀
    9月24日,國家藥品監督管理局(NMPA)發布了三項骨科植入物註冊技術審查指導原則,包括:《3D列印患者匹配下頜骨假體註冊技術審查指導原則》、《個性化匹配骨植入物及配套工具醫工交互質控審查指導原則》與《生物型股骨柄柄部疲勞性能評價指導原則》。
  • 國家藥監局發布用於罕見病防治醫療器械註冊審查指導原則
    國家藥品監督管理局關於發布用於罕見病防治醫療器械註冊審查指導原則的通告(2018年第101號)為貫徹落實中共中央辦公廳、國務院辦公廳《關於深化審評審批制度改革鼓勵藥品醫療器械創新的意見》(廳字〔2017〕42號),加強醫療器械產品註冊管理,進一步提高註冊審查質量
  • GitHub最熱!碼代碼不得不知的所有定律法則
    項目連結:https://github.com/dwmkerr/hacker-laws本文包含對一些定律、原則和模式的解釋,但並不主張其中任何一項。是否要應用哪個定律一直是一個爭論性問題,並且很大程度上取決於你在做哪方面的工作。
  • GitHub官方App發布 支持暗黑模式;Chrome 暫停新版本發布
    (給技術最前線加星標,每天看技術熱點)綜合整理:技術最前線(ID:TopITNews)參考:程式設計師的那些事、開源中國、solidot、cnBeta、騰訊科技等0、GitHub 官方 App 正式發布,支持暗黑模式GitHub 在去年的 Universe
  • 從Python代碼到APP,你只需要一個小工具:GitHub已超3000星
    不管對於任何原型,Streamlit 的核心原則都是更簡單、更純粹。Streamlit 的核心原則如下:1. 擁抱 PythonStreamlit app 是完全自上而下運行的腳本,沒有隱藏狀態。你可以利用函數調用來處理代碼。
  • 什麼是GitHub action
    我建議大家多查閱官方的幫助文檔,這樣能減少彎路。網上太多的教程都似是而非或者不完整。官方幫助文檔GitHub Action在 5 分鐘或更短時間內將 GitHub Actions 工作流程添加到現有倉庫。
  • 一天1300 Star量,GitHub上新官方命令行工具
    ——不是我說的 小編私以為,Git 是世界上最好的代碼版本控制工具,木有之一。在做項目的時候,通常我們會在本地寫代碼,並通過 Git 命令行追蹤所有修改痕跡。如果你想託管或開源,也可以直接用 Git 把整個項目推送到 GitHub 上。
  • 國家藥監局發布子宮內膜射頻消融設備註冊技術審查指導原則
    國家藥監局關於發布子宮內膜射頻消融設備註冊技術審查指導原則的通告(2019年 第59號)為加強醫療器械產品註冊工作的監督和指導,進一步提高註冊審查質量,國家藥監局組織制定了子宮內膜射頻消融設備註冊技術審查指導原則(見附件),現予發布。特此通告。
  • GitHub∣編程學習利器
    先別急,等看完全篇,你就知道GitHub不僅可以建立屬於自己的代碼庫,搜索代碼,而且其開源數據的質量,數量以及種類的全面性等等都比CSDN要更上好幾層樓,甚至有人使用GitHub定製健身計劃,找女(nan)朋友……登錄GitHub官網https://github.com/,註冊一個帳號並登錄。
  • 丟人現眼……GitHub阿波羅11號代碼倉庫慘遭中文灌水
    昨天登上GitHub趨勢熱榜第一的阿波羅11號(Apollo 11)代碼倉庫,獲得了3萬多標星稱讚,但也同時慘遭中文灌水的侵擾,引發了眾多網友的熱議。50年前,三位太空人搭乘阿波羅11號,完成人類第一次登月任務。