命名這檔事:snake_case、camelCase 與 kebab-case 的選擇之道
在程式開發中,清晰、一致的命名風格對於程式碼的可讀性與維護性至關重要。本文將介紹三種常見的命名規則:snake_case、camelCase 和 kebab-case,並說明它們的使用場合及特性。
命名規則簡介
snake_case
定義:單詞之間以底線(_
)分隔,所有字母均小寫。
範例:
user_name
sell_power_request
start_date
常見應用:- Python 和 Ruby 中的變數和函式名稱。
- 資料庫欄位名稱(如 SQL)。
- 用於增加可讀性,特別適合需要簡潔和規則分明的環境。
camelCase
- 定義:第一個單詞小寫,後續每個單詞首字母大寫,單詞之間不使用任何分隔符,看起來像是駝峰一樣,可以進一步細分為 upper camel case,與lower camel case 差別在於開頭第一個字是否為大寫
- 範例:
userName
sellPowerRequest
startDate
- 常見應用:
- JavaScript、Java、C# 等語言中的變數與函式命名。
- JSON 格式的屬性名稱。
- 強調簡潔並與其他命名規則有所區隔。
kebab-case
- 定義:單詞之間以連字符(
-
)分隔,所有字母均小寫,有許多另外的別稱 spinal-case,Train-Case,Lisp-case - 範例:
user-name
sell-power-request
start-date
- 常見應用:
- URL 和 HTML 屬性命名(如
data-attribute
)。 - 前端框架中的 CSS 類名(如
my-component
)。 - 強調跨環境兼容性,特別是在 Web 開發中。
- URL 和 HTML 屬性命名(如
三種命名規則的區別
規則 | 分隔方式 | 範例 | 常見應用場景 |
---|---|---|---|
snake_case | 底線 _ |
user_name |
Python、Ruby 變數與資料庫欄位名稱 |
camelCase | 無分隔,後單詞首字母大寫 | userName |
JavaScript 函式與變數名稱 |
kebab-case | 連字符 - |
user-name |
URL、CSS 類名 |
什麼時候使用哪種規則?
選擇命名規則時,需考慮語言的慣例及使用場景:
snake_case
- 優點:清晰易讀,適合跨平台處理。
- 缺點:在某些語言(如 JavaScript)中顯得笨重。
- 使用場景:
- Python 變數、函式名稱。
- SQL 資料表欄位名稱。
camelCase
- 優點:簡潔且符合 JavaScript、Java 等語言的習慣。
- 缺點:單詞長時會降低可讀性。
- 使用場景:
- 前端框架的變數、函式命名。
- JSON 屬性。
kebab-case
- 優點:與 URL 和 HTML 屬性名稱自然契合。
- 缺點:無法直接用於變數或函式名稱(不合法)。
- 使用場景:
- CSS 類名和 ID 名稱。
- RESTful API 的 URL。
範例應用
snake_case 範例
1 | # Python 變數和函式命名 |
camelCase 範例
1 | // JavaScript 函式和變數命名 |
kebab-case 範例
1 | <!-- HTML 屬性 --> |
總結
選擇語言約定:遵循語言或框架的命名慣例。例如:
- Python 使用 snake_case。
- JavaScript 使用 camelCase。
- CSS 和 URL 使用 kebab-case。
團隊統一風格*:在團隊協作中,統一命名規範能提升程式碼的一致性與可讀性。
語意清晰優先:無論使用哪種規則,確保命名能反映實際功能或用途。
最後,良好的命名是可讀程式碼的基石,選擇適合的規範,讓你的程式碼更具可讀性與可維護性!
目前在工作經驗上其實三種都有使用過,主要還是看開發團隊大家想要一起使用哪一種,說好就行了。
本部落格所有文章除特別聲明外,均採用CC BY-NC-SA 4.0 授權協議。轉載請註明來源 Nalson!
評論
ValineDisqus