プログラミングの命名規則:完全ガイド
命名規則はソースコードの識別子を選択するための体系的なルールです。適切な規則を使うことで可読性が向上し、バグが減り、チーム間の保守が容易になります。
なぜ命名規則が重要か
コードは書かれる回数より読まれる回数の方が圧倒的に多いです。一貫した命名により、変数・関数・クラスの目的とスコープが一目でわかります。
主要な命名規則
camelCase
区切り文字なしで2番目以降の単語を大文字に:getUserName、totalPrice。JavaScript、TypeScript、Java、Swiftの変数・関数で標準。
PascalCase(UpperCamelCase)
camelCaseと同様だが最初の単語も大文字:UserAccount、HttpClient。クラス名、Reactコンポーネント、TypeScriptインターフェースで使用。
snake_case
アンダースコア区切りですべて小文字:user_name、get_total_price。PEP 8でPythonに規定、Ruby、Rust、SQLでも標準。
SCREAMING_SNAKE_CASE
すべて大文字+アンダースコア:MAX_RETRY_COUNT、API_BASE_URL。ほとんどの言語の定数と環境変数。
kebab-case
ハイフン区切りですべて小文字:my-component、user-profile。CSSクラス、HTML属性、URLスラッグ、CLIフラグで標準。
dot.case
ドット区切り:com.example.app。Javaパッケージ名やプロパティファイルキー。
言語別の規則
| 言語 | 変数/関数 | クラス | 定数 |
|---|---|---|---|
| JavaScript / TypeScript | camelCase | PascalCase | SCREAMING_SNAKE |
| Python | snake_case | PascalCase | SCREAMING_SNAKE |
| Java | camelCase | PascalCase | SCREAMING_SNAKE |
| Ruby | snake_case | PascalCase | SCREAMING_SNAKE |
| Rust | snake_case | PascalCase | SCREAMING_SNAKE |
| Go | camelCase | PascalCase | camelCase / PascalCase |
| C# | camelCase | PascalCase | PascalCase |
| Swift | camelCase | PascalCase | camelCase |
| PHP | camelCase / snake_case | PascalCase | SCREAMING_SNAKE |
| CSS | kebab-case | — | — |
ベストプラクティス
- 言語のスタイルガイドに従う。PythonはPEP 8、JavaはGoogleスタイル、JavaScriptはAirbnb — 独自ルールを作らない。
- プロジェクト内で一貫させる。同一ファイルでcamelCaseとsnake_caseを混在させない。
- 記述的な名前を使う。
getUよりgetUserByIdが望ましい。規則はフォーマットであり、中身は意味のあるものにすべき。 - 略語を避ける。
calcTotPrcよりcalculateTotalPrice。 - エコシステムに合わせる。ReactプロジェクトでcamelCaseプロパティを使い、Python APIがsnake_caseを返す場合は、境界で変換する。
まとめ
命名規則は恣意的なものではありません。スコープ、型、意図についての情報をエンコードしています。使用言語の標準を学び、一貫して適用すれば、コードの読みやすさ・レビュー・保守性が向上します。
規則間の変換
camelCaseコンバーター、snake_caseコンバーター、PascalCaseコンバーター、kebab-caseコンバーターをご利用ください。ケース変換ハブですべての形式を並べて比較できます。