跳到主要內容

← 返回部落格

camelCase、snake_case、kebab-case:命名慣例完整整理

「電腦科學裡只有兩件難事:快取失效與命名。」命名不只關乎你叫它什麼,也關乎你用什麼風格來寫。不同語言與生態圈偏好不同慣例,混用會讓程式看起來雜亂。這篇給你實用整理。

主要風格

  • camelCase —— 首字小寫,其後每個字首大寫:myVariableName。JavaScript、Java 等語言中變數與函式的預設。
  • PascalCase(又稱 UpperCamelCase)—— 每個字首都大寫:MyVariableName。用於類別、型別與 React 元件。
  • snake_case —— 全小寫,以底線連接:my_variable_name。Python 與 Ruby 中變數與函式的標準,也常見於資料庫欄位名。
  • kebab-case —— 全小寫,以連字號連接:my-variable-name。用於網址、CSS 類別與檔名。(多數語言中不能當識別字,因為連字號會被讀成減號。)
  • CONSTANT_CASE(SCREAMING_SNAKE_CASE)—— 全大寫加底線:MAX_RETRY_COUNT。慣例上用於常數與環境變數。

哪個語言用哪種?

命名慣例是「融入這份程式碼」的強烈訊號:

  • JavaScript / TypeScript —— 變數與函式用 camelCase,類別與型別用 PascalCase,真正的常數用 CONSTANT_CASE。
  • Python —— 函式與變數用 snake_case,類別用 PascalCase,模組常數用 CONSTANT_CASE(PEP 8)。
  • Go —— 匯出名稱用 PascalCase,未匯出用 camelCase。
  • CSS —— 類別名(.main-nav)與自訂屬性(--brand-color)用 kebab-case。
  • 網址與檔名 —— 偏好 kebab-case(/blog/my-post),因為易讀且對網址安全。

Title Case vs Sentence case

還有兩種用於文字而非程式的風格:

  • Title Case 把每個單字首字母大寫 —— 用於標題(「A Naming Conventions Guide」)。
  • Sentence case 只把整行第一個字母大寫 —— 因為讀起來更自然,越來越常用於 UI 標籤與標題。

在風格之間轉換

你常需要把名稱從一種風格轉成另一種 —— 例如把資料庫欄位 created_at(snake_case)轉成 API 的 JSON 欄位 createdAt(camelCase)。手動改既繁瑣又容易出錯。

我們的大小寫轉換工具一鍵搞定:貼上名稱或片語,即可在 UPPERCASE、lowercase、Title Case、Sentence case、camelCase、PascalCase、snake_case、kebab-case 與 CONSTANT_CASE 之間即時切換。

幾個小建議

  • 在專案內保持一致。 用哪種慣例,不如全體統一來得重要。
  • 遵循語言的慣用寫法。 在 JavaScript 裡寫 snake_case(或在 Python 裡寫 camelCase)會顯得格格不入。
  • CONSTANT_CASE 少用 —— 只給真正的常數與環境變數。

風格對了,程式讀起來就像本來就屬於那裡。下次要重塑一個名稱時,試試免費的大小寫轉換工具