軟體開發

Pull Request 總是過不了? 10 個小訣竅讓你的 PR 更容易通過!

Pull Request (PR)是Github flow或Gitlab flow開發流程中最常發生的動作!
但發 Pull Request 容易,讓PR通過卻很難!團隊每個成員都有自己的任務,少有人能瞭解其他人任務或是設計架構…
怎麼樣才是好PR?如何讓你的PR更容易通過(approval),進而避免你的PR“臭酸“呢?
分享10個小訣竅,大家一塊來試試!

 

 

怎麼樣才是好的 PR(pull request)?

本文其實只是個讀書小心得
10 個發 PR 的小訣竅其實和寫好程式有 87 成像
  1. 確保每個 PR 小而美
  2. 任務單一化
  3. 程式單行寬度不太可寬 ( 視團隊而定 )
  4. 避免在功能變動的 PR 裡做個人化修改。搭配上述 (1)、(2)
  5. 運作正常,不能有 “在我的電腦是正常” 的情形
  6. 確保所有 Test 通過
  7. 當然,為你的功能加上 Test
  8. 完整的文字說明
  9. 貼心的 PR 內文
  10. 良好的 commit 習慣

 


 

呼應上面的 PR 訣竅
就現實面來講~ 我實際工作時的心得

  1. 〝儘可能〞 切割 PR,也可以分階段 ( phase 1, 2, 3…) 上 PR
  2. 同上,而且小 PR 變動檔案下,隊友幫忙 CodeReview 的意願也高
  3. 團隊 Code Style 的問題
  4. 呼應 (1)、 (2),修改 Code Style 、修正空白、換行這類… 建議另開 PR 處理
  5. 你修改或新增的功能要確保執行正常,至少自己要執行過一次!
  6. 依 Project 本身的測試覆蓋率決定…
  7. Just do it!
  8. 程式即文章,配合 Code Style 去寫程式吧
  9. 什麼是貼心的 PR 呢?很多時候 PR 的內文只會註記改了什麼、加了什麼功能…
    對於其它人來說… 除了通靈、瞎猜之外,很難理解你想做什麼、修改了什麼.
    試著為〝變動〞的功能截圖、紅線劃出重點,提供測試帳號、資料,都能幫助 PR 更快被閱讀、通過!👍
    簡單說;PR 內的文件要簡單扼要的說明 why, what, how,讓 code review 的隊友更能瞭解你想修改的項目和目的.
  10. 不要亂發 commit, 不要亂寫 commit, 不要沒寫 commit,簡單說,就是不要偷懶,善用 git rebase

 


 

一個不好的例子; commit message 不夠清楚且 commit 數過多

 
 

引用原文:10 tips for better Pull Requests by Mark Seemann

可樂

View Comments

Recent Posts

plain PHP 搭配 Slack 進行錯誤追蹤、回報(Error Tracking、Error Handling)

錯誤追蹤、回報非常重要,看到的錯誤才知道怎麼修。現今 PHP 流行的 Laravel 有很好的 Error Tracking, Error Handling。但 plain PHP 怎麼辦呢? 在 production 為了安全考量會設定…

4 years ago

Drone CI/CD 配合 Github 使用 Rsync 進行 Deploy

jenkins、circleci、travis 或 Gitlab CI 皆為目前暫知名的 CI/CD 服務,各自缺點也不言而喻...過於肥大、收費略高(?)、速度不夠快執問題...此時使用 go language 開發的 Drone 就出現啦,完全 docker 容器化的運行方式讓整個 CI…

4 years ago

Nginx brotli 設定

網頁壓縮技術中 gzip 很好用,deflate 己經過時,但你聽過 brotli 嗎? 有著比 gzip 更好、更快的壓縮效率。看起來利大於弊有什麼不用他的理由嗎?簡單從優、缺點來看 brotli!到底 brotli 布羅特利是什麼、如何設定呢。 目前大多的 web server…

4 years ago

本機使用 Docker 容器內 PHP (wrapper/expose PHP)

為什麼要讓本機使用 Docker 內 PHP? 情境... docker 容器內用的是 PHP 7.4 但你的開發本機還在跑 PHP 5.6 或是更舊,因為 dockerize 的關係會將所有相關環境都轉移到…

4 years ago

為什麼你需要密碼管理工具

為什麼你需要密碼管理工具現代人一天下來需要輸入多少組密碼,工作與生活己經和密碼密不可分! 除了足夠全安的密碼,密碼記錄、儲存的方式又足夠安全嗎?密碼管理工具可以帶來什麼幫助呢? 為什麼你需要密碼管理工具 資安問題!!大多人說著沒做壞事不怕被偷資料、監聽。嚴重曝露出現代人的基本科技素養的低落和無知 🤯 密碼的使用無所不在!! 行動裝置的普及,APP 、手機遊戲、銀行帳戶所有和生活相關的東西都需要密碼!!facebook, line 只要打開 APP 也會輸入密碼只是他是自動輸入、一般情況不可視 (auth token) 一般人最常發生的密碼資安問題…

4 years ago

簡單使用 Mysql Partition 優化查詢

mysql 資料表分區 mysql table partition 從架構上調整 mysql 的查詢效率。mysql DB 的優化可以簡單也能複雜,除了調整設定值。也可以透過水平分割(Horizontal Partitioning)、垂直分割(Vertical Partitioning) 分庫或分表將資料分散儲存減少資料搜尋、group by 時的效能消耗。拆開批次處理,理論上效率都會變好,本文就水平分割的…

4 years ago