1. 程式人生 > 資訊 >AMD 介紹 RSR 技術:可為數以千計遊戲提供更好的視覺效果,第一季度上線

AMD 介紹 RSR 技術:可為數以千計遊戲提供更好的視覺效果,第一季度上線

前言

在開發過程中經常需要提交程式碼,提交程式碼時需要填寫 Commit Message(提交說明),否則就不允許提交。但是在每個開發人員提交的格式非常不統一,有中文的,有英文的,還有直接廢話文學和直接寫11111的,時間久了連開發人員自己都不知道自己表述的修改內容。


Commit Message 規範

社群有多種 Commit Message 的規範,直接參考 angular 的規範。

Angular 規範是一種語義化的提交規範(Semantic Commit Messages)

  1. Commit Message 語義化:Commit Message 都會被歸為一個有意義的型別,用來說明本次 commit 的型別。
  2. Commit Message 規範化:Commit Message 遵循預先定義好的規範,比如 Commit Message 格式固定、都屬於某個型別,這些規範不僅可被開發者識別也可以被工具識別。

在 Angular 規範中,Commit Message 包含三個部分,分別是 Header、Body 和 Footer,格式如下:


<type>[optional scope]: <description>
// 空行
[optional body]
// 空行
[optional footer(s)]

Header 是必需的,Body 和 Footer 可以省略。在以上規範中,必須用括號 () 括起來, [] 後必須緊跟冒號 ,冒號後必須緊跟空格,2 個空行也是必需的。

Header ,包括三個欄位:type(必選)、scope(可選)和 subject(必選)。

type 用來說明 commit 的型別。為了方便記憶,分為 Development 和 Production 共兩類

  1. Development 一般是專案管理類的變更,不會影響終端使用者和生產環境的程式碼,比如 CI/CD 流程、構建方式等的修改。遇到這類修改,通常也意味著可以免測釋出。
  2. Production 這類修改會影響最終的使用者和生產環境的程式碼。所以對於這種改動,一定要慎重,並在提交前做好充分的測試。

常見 type 分類

型別 類別 說明
feat Production 新增功能
fix Production 修復bug
perf Production 優化效能
refactor Production 其他程式碼型別的修改,譬如簡化程式碼,重新命名,刪除冗餘程式碼
style Development 程式碼格式優化。
test Development 新增或者修改測試用例
ci Development 持續整合和部署相關的改動
docs Development 文件的新增修改
chore Development 其他型別,譬如構建流程,依賴管理輔助功能等

scope 是用來說明 commit 的影響範圍的,不同的專案會有不同的 scope ,scope 不適合設定太具體的值,譬如 docs 文件類變更, user 使用者模組,pay 支付模組等。

subject 是 commit 的簡短描述,必須以動詞開頭、使用現在時。

Body 是對這次提交的詳細描述,Body 部分可以分成多行,而且格式也比較自由。不過,和 Header 裡的一樣,它也要以動詞開頭,使用現在時。此外,它還必須要包括修改的動機,以及和跟上一版本相比的改動點。

Footer 主要用來說明本次 commit 導致的後果。在實際應用中,Footer 通常用來說明不相容的改動和關閉的 Issue/bug 列表,關閉的 Bug 需要在 Footer 部分新建一行,並以 Closes 開頭列出,例如:Closes #123。如果關閉了多個 Issue,可以這樣列出:Closes #123, #432, #886。

以下是一個完整的提交


refactor(elements): remove unneeded Custom Elements polyfill from doc…

In PR #43975, the `Angular Elements` guide was updated to remove
mentions of the Custom Elements-related polyfills, since they are no
longer necessary in v13+ (due to all CLI projects being ES2015+ and all
supported browsers natively supporting Custom Elements).

This commit updates the related docs example boilerplate to not include
the unneeded `@webcomponents/custom-elements` polyfill.

Close #44214


總結

在專案開發中,好的 Commit Message 可以起到以下幾點好處。

  1. 可以使自己或者其他開發人員能夠清晰地知道每個 commit 的變更內容,方便快速瀏覽變更歷史,比如可以直接略過文件型別或者格式化型別的程式碼變更。
  2. 可以基於這些 Commit Message 進行過濾查詢。
  3. 可以基於規範化的 Commit Message 生成 Change Log。
  4. 可以依據某些型別的 Commit Message 觸發構建或者釋出流程,比如當 type 型別為 feat、fix 時我們才觸發 CI/CD 流程。