# 命名這檔事:snake_case、camelCase 與 kebab-case 的選擇之道  >https://juniortoexpert.com/en/naming-convention/ 在程式開發中,清晰、一致的命名風格對於程式碼的可讀性與維護性至關重要。本文將介紹三種常見的命名規則: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 開發中。 --- # 三種命名規則的區別 | **規則** | **分隔方式** | **範例** | **常見應用場景** | |-----------------|--------------------|--------------------|-------------------------------| | **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 範例 ```python # Python 變數和函式命名 def calculate_total_price(price_per_item, quantity): total_price = price_per_item * quantity return total_price ``` ## camelCase 範例 ```javascript // JavaScript 函式和變數命名 function calculateTotalPrice(pricePerItem, quantity) { let totalPrice = pricePerItem * quantity; return totalPrice; } ``` ## kebab-case 範例 ```html <!-- HTML 屬性 --> <div class="user-profile" data-user-id="123"></div> /* CSS 類名 */ .user-profile { background-color: #f5f5f5; } ``` --- # 總結 1. 選擇語言約定:遵循語言或框架的命名慣例。例如: - Python 使用 **snake_case**。 - JavaScript 使用 **camelCase**。 - CSS 和 URL 使用 **kebab-case**。 2. 團隊統一風格*:在團隊協作中,統一命名規範能提升程式碼的一致性與可讀性。 3. 語意清晰優先:無論使用哪種規則,確保命名能反映實際功能或用途。 最後,良好的命名是可讀程式碼的基石,選擇適合的規範,讓你的程式碼更具可讀性與可維護性! 目前在工作經驗上其實三種都有使用過,主要還是看開發團隊大家想要一起使用哪一種,說好就行了。 ###### tags: `更新上部落格`
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.