代碼審查不是用來…… ( Code Review )

2021-01-11 開源中國

在我們公司裡要執行代碼審查。這是我們每天的例行工作。事實上,今天的我們正是從這種一直堅持探索的漫長道路上走出來的。我們嘗試各種技術、方法和工具,直到我們走到今天的成就(但這並不是說我們就此停步)。

在這旅途中,我們發現了很多的陷阱和危險,它們等待新手們上鉤。這篇文章就是關於它們的:代碼審查中的陷阱和誤解。

代碼控制:

很 多公司都把代碼審查當成控制代碼的方法。很多這樣的公司都使用預提交策略。這種策略大多時候都是開源項目中使用,因為會有成百上千的提交者。可在一般的公 司裡,很少會有這種情況。如果你僱用一個人,這意味這你要完全信任他,允許他將代碼提交到代碼庫裡。我知道有些公司會忍不住制定一些規程,要求程式設計師在提 交代碼前必須進行「審查」和「批准」,但這並不能保證代碼的質量。而且,程式設計師很快就會把這種代碼審查當作一種「愚蠢」的公司形式過程,會開始抵制它(例 如,每月改一次密碼。例如,使用像mypass1,mypass2等的密碼)。

 

審判廳:

不 要把代碼審查當成尋找替罪羊和追究責任的工具。比如說,這有一個錯誤,你找到「審查」這段代碼的人,並責備他沒有發現這個問題。這種事情會給公司裡的開發 工作帶來嚴重的影響。人們會挑出每個分號放置不正確的地方,因為他們擔心會被當成替罪羊。團隊成員開始缺乏信心,並最終失去互信。

責任任務:

不要過分要求程式設計師做代碼審查。如果你強迫他們每天做一小時的代碼審查,他們很快就會痛恨它,把它當成一種無趣的任務。代碼審查是一種學習,是表揚,是獲得反饋,是一種十分社交性的活動。代碼審查應該是有趣的,不要讓它變的無聊。

我和我的代碼

如 果你的代碼被某人審查,他會留下一些注釋(有時是不那麼友好的話),不要生氣。他並不是在說你是一個很爛的程式設計師。這不是他的本意,也不是代碼審查的目 的。他的所作所為是在批評代碼(而不是作者)。代碼審查是針對代碼,不是針對你。不要把代碼審查當成互相諷刺的論壇和相互批判的工具。當你寫審查注釋時, 努力保持不要粗魯,也不要太苛刻。努力站在作者的立場上看待這些代碼。

總結一下,很多種錯誤都會使代碼審查變味。上面4種是我經歷過或預料到的,請警惕。我承諾還會寫一篇描述「代碼審查是來…..」的文章。

如果你想嘗試一種代碼審查工具,請訪問codebrag.com,這是我們的經驗和實踐的成果。

相關焦點

  • Review Board 2.0.21 發布,在線代碼審查工具
    Updating a review request when it and another review request depend on each other no longer results in errors.Commits against a local GitLab server no longer fail to post.
  • Review Board 2.0.4 發布,代碼評審工具
    An attacker could send such a URLto another user and execute code in their browser session.This was reported by Uchida. A CVE number is pending.
  • 在線代碼審查工具 Review Board 3.0 重大版本更新
    Review Board 3.0 已發布,新版帶來了新的第三方服務集成、支持自動化的代碼審查、新的審查功能,更好的討論,還有更多。
  • 在線代碼審查工具 Review Board 2.5.17 和 3.0.1 發布
    在線代碼審查工具 Review Board 2.5.17 已發布,同時發布的還有 3.0.1 版本,主要是一些 Bug 修復和功能改進
  • Review Board 3.0.4 發布,在線代碼審查工具
    更新內容:Link to your Asana and Trello tasksPost updates to Mattermost and I Done ThisReview code stored on GerritBetter compatibility with GitLabSupporting self-signed
  • Review Board 3.0.6 發布,在線代碼審查工具
    Review Board 3.0.6 發布,新版本修復了一些小問題,改進了原始碼管理兼容性和 UI 交互改進 E-mailUsing rbt post --submit-as
  • 證據審查 evidence review
    請看《中國日報》的報導:A death sentence should be pronounced only with sufficient evidence acquired through legal means, stipulate the two regulations: One on evidence review in death
  • 我們是怎麼做Code Review的
    這篇文章的目的不是告訴大家怎麼在一個團隊內推行Code Review,首先因為我個人僅在一家公司內推行過,並沒有很多經驗。 其次每家公司、每個團隊的情況都不太一樣,應該根據公司或團隊的實際情況選擇恰當的方案,並根據成員的反饋來及時調整,推動Code Review的實施。
  • Review Board 2.0.5 發布了
    Review Requests Administrators (or those with the 「Can Change Status」 permission) can now re-open discarded review requests.
  • Review Board 2.5 發布,在線代碼評審工具
    One click expands the diff right in the review.Stay focused by muting and archiving review requests For all the Inbox Zero types, you can now archive old review requests and mute any that don’t require your attention
  • PapersWithCode發布代碼完整性自查清單:想獲更多星,注意這五項
    清單項目地址:https://github.com/paperswithcode/releasing-research-code機器學習代碼完整性自查清單為鼓勵復現性,幫助社區成員基於已發表工作更輕鬆地構建新的項目,Papers with Code 團隊發布了機器學習完整性自查清單。
  • 經緯度編碼方法推薦-plus code簡介
    plus code的前四個字符是區域代碼,基本是1經緯度的範圍,也就是約100100公裡的範圍,後六位是本地代碼,用來描述一個建築物,面積約為1414米,差不多是半個籃球場的大小。但如果覺得十位編碼精度不夠,是否可以繼續拓展呢?
  • 學術發布|德國和義大利大學用可穿戴設備研究程式設計師代碼理解能力
    來自德國漢堡大學和義大利巴裡大學的聯合團隊對軟體開發工程師在軟體開發中的代碼理解(Code Comprehension Activities)活動進行了研究,研究中採用了多種輕量化的可穿戴式的生物信號傳感設備,用來度量實驗樣本人群的腦電、心電和皮膚阻抗等信號。研究的目的是為了了解這種關係代碼理解行為與潛在認知之間的關係機制。
  • review什麼意思
    review什麼意思單詞解析review:審查、仔細審核的動詞和名詞,評論的名詞和動詞,評論性報紙、評論雜誌、檢閱部隊的名詞和動詞,複習、同revue(revue,輕鬆表演劇review 之 審查review 之 評論這裡來詳細說一下review作為檢閱、閱兵的意思,大家想想看國慶大閱兵或者之類的閱兵是不是都會被記錄下來,然後在新聞裡不斷地播放啊?
  • 簡單shellcode學習
    引言之前遇到沒開啟NX保護的時候,都是直接用pwtools庫裡的shellcode一把梭,也不太懂shellcode代碼具體做了些什麼,遇到了幾道不能一把梭的題目,簡單學習一下shellcode的編寫。
  • 強強聯合,Papers with Code攜手arXiv,上傳論文、提交代碼一步到位
    最近,它又有了新舉措:與論文預印本平臺 arXiv 展開合作,支持在 arXiv 頁面上添加代碼連結。現在,arXiv 上機器學習論文摘要頁面的下方出現了一個 Code 按鈕,它可以連結論文相關的官方和社區代碼實現:arXiv 論文頁面新增的 Code 部分(Papers with Code 提供支持)。可提供官方代碼和社區代碼。
  • C/C++免殺CS shellcode實踐
    概述什麼是shellcode百度百科這樣解釋道:shellcode是一段用於利用軟體漏洞而執行的代碼,shellcode為16進位的機器碼,因為經常讓攻擊者獲得shell而得名。翻譯成人話就是:shellcode是一段執行某些動作的機器碼。
  • 「Talk is cheap,show me the code」你一行代碼有多少漏洞?
    受訪者 | 梁宇寧 記者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 平常程式設計師喜歡說「Talk is cheap, show me the code
  • 如何評價《太吾繪卷》的程序代碼?unity業餘愛好者說一下
    unity業餘愛好者說一下,這幾天傳的關於《太吾繪卷》代碼的事幾乎都是無中生有的事...一群用.net和vs做工程的人談論第三方引擎做的遊戲...真是雞同鴨講。太吾繪卷現在針對幾個常見誤會說一下1.只有一個main (x)unity的腳本都是依附於各個精靈的,沒有main,只有update2.沒有注釋(x)你反編譯出來的代碼有注釋
  • 程式設計師的樂趣,生成自定義二維碼,5行Python代碼就搞定
    近日,一位熱衷於終身學習的工程師兼攝影師 Arindom Bhattacharjee 撰寫了一篇自定義生成二維碼的方法,並且整個生成過程只需要 5 行 Python 代碼即可完成。感興趣的讀者可以自己實現下。5 行 Python 代碼自定義生成二維碼二維碼(QR Code)由白色背景上的黑色網格方塊組成。