如何讓人認真看待你的 PR?或是你其實可以拒看過胖的 PR 嗎?

此篇是 NDC Oslo 2024 議程 👍 Looks GREAT To Me: Getting Past Bare Minimum Code Reviews - Adrienne Braganza Tacke 的自用筆記。講者針對 PR/MR 的作者(author)和審查者(reviewer)分別提出了一些 Dos 和 Don’ts。

此篇筆記中的名詞定義

筆記本體

PR/MR 作者應該做到的事情

重點:在指定審查者之前,作者要先檢查該 PR/MR 是否確實已經達到「可以被審查」的狀態

「寫完」跟「這段程式碼已經準備好被審查」是兩碼子事。「寫完」代表完成功能、修好 bug,但不一定代表這些程式碼已經被整理到「可以讓其他人專注於檢查程式碼品質,確認其是否達到能合併的程度」。

以下是一些「雖然程式碼確實已經寫完,但會讓審查者頭很大」的例子:

在要求審查以前,可以執行以下檢查來確保你的程式碼能收到應有的回饋:

PR/MR 審查者應該做到的事情

重點:專注於確保程式碼的品質,並確實審查每一行程式碼

這兩件事可以先從提供具體的回饋開始。如果你希望作者修改程式碼,就明確指出何處應該被修改,並說明為什麼應該要修改——所有的修改都要帶來明確、能量化的改善(而不是因為「我感覺這樣寫比較好」所以「你應該要改」)。

議程中介紹了 request/rationale/result (需求、理由、預期結果)的建議模板,如果你完全沒有頭緒,可以參考以下「建議將某 method 移到更合適的位置」與「建議使用更有辨識度的變數命名」的範例:

example: moving a method

example: a more meaningful variable name

再來,查程式碼並不是一個讓審查者展現自己有多厲害的場合,審查的目的是確保程式碼的品質足夠合回去。因此,如果該 PR/MR 的改動範圍實在太大,審查者應該主動要求作者進行拆分,而不是眼睛一閉直接按下去。

請記得審查者本身也有責任避免 repo 中出現有問題的程式碼,而不是雙手一攤讓提出 PR/MR 的作者承擔出現 bug 的全部責任。

參考

👍 Looks GREAT To Me: Getting Past Bare Minimum Code Reviews - Adrienne Braganza Tacke