「電腦科學裡只有兩件難事:快取失效與命名。」命名不只關乎你叫它什麼,也關乎你用什麼風格來寫。不同語言與生態圈偏好不同慣例,混用會讓程式看起來雜亂。這篇給你實用整理。
主要風格
- 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 少用 —— 只給真正的常數與環境變數。
風格對了,程式讀起來就像本來就屬於那裡。下次要重塑一個名稱時,試試免費的大小寫轉換工具。