スネークケース
スネークケース(英: snake case)とは、単語と単語の間をアンダースコア_
で繋ぐ命名規則である[1][2]。プログラミングの世界で広く使用され、特にPythonやRubyなどの言語で一般的である[3][4]。歴史的には、スネークケースは初期のコンピュータ科学やプログラミングの文脈で誕生し、可読性を高めるための方法として普及した[5][6]。
英語圏では、このスネークケースに対する一般的な別名として「アンダースコアケース(underscore_case
)[7]」や「ローワースネークケース(lower_snake_case
)[8]」が使用されることも多い。日本語では「アンダースコア記法(きほう)[1]」とも呼ばれる。これらの用語は特にプログラミングスタイルガイドやコーディング規約に関する書籍やリソースで見られる。
ただし、プログラミングにおける命名規則の形式に対する名前は、国際的に標準化されているわけではない[9][10]。
スネークケースの利点としては、単語が明確に分離され、長い名前でも読みやすくなることが挙げられる。また、アンダースコア_
は他の記号に比べて視覚的に目立たないため、コードの美観を損なわないという特徴もある[11][12]。しかし、欠点としては、アンダースコア_
の入力が煩雑であり、特にタイピングスピードを重視するプログラマーにとっては手間となる場合がある。また、一部のプログラミング言語やツールではスネークケースが推奨されない場合もある[6][11]。
適用範囲としては、関数名、変数名、ファイル名など、様々な命名規則においてスネークケースが用いられることが多い[3][12]。具体的な適用例としては、Pythonの標準ライブラリにおける命名規則や、データベーススキーマのフィールド名などが挙げられる[13][14]。スネークケースはその明瞭さと一貫性から、多くのプロジェクトや組織で推奨される命名規則となっている[11][12]。
本ページでは、スネークケースの定義から始まり、その歴史、利点と欠点、適用範囲や適用例について詳述する。
定義
[編集]スネークケースとは、単語と単語の間をアンダースコア_
で繋ぐ表記法を指す[1][2]。英語では"snake_case"と表記されることが多い[15][16]。この表記法はプログラミングの命名規則の一つとして広く使用されており、例えば、example_variable_name
のように単語を区切ることで、単語間の区切りが明確になり、可読性が向上する[3][6]。スネークケースは主に関数名や変数名、ファイル名などに用いられる[3][12]。また、単語を小文字で統一することが一般的である[3][12]。スネークケースはコードの読みやすさや保守性に寄与するため、多くのプログラミングスタイルガイドで推奨されており、PythonやRubyを含む多くのプログラミング言語で広く採用されている(スネークケースを使用しているプログラミング言語のリスト)[11][12]。
歴史
[編集]1960年代後半:C言語の誕生とアンダースコアの使用
[編集]単語の区切り文字としてアンダースコア_
が使用されるようになったのは、1960年代後半にまで遡る。これは特にC言語に関連しており、この時期にC言語の開発が進められた[5][17]。
1970年代:初期の普及
[編集]1970年代を通じて、C言語や他の初期のプログラミング言語においてスネークケースの形式が浸透し始めた。プログラマーは、関数名や変数名にアンダースコア_
を使用することで、単語を明確に区別する手法を採用するようになった[5][18]。
1978年:『The C Programming Language』の出版
[編集]1978年に出版された『The C Programming Language』では、スネークケースの形式が見られる[5]。この時期には、「パスカルケース(キャメルケースの一種)」と対比される形で使用されていたが、この時期にこれらの形式には特定の名前は付いていなかった。
1980年代:UnixとC言語の普及
[編集]1980年代には、UnixシステムやC言語の普及に伴い、スネークケースがさらに広く使用されるようになった。特に、シェルスクリプトやシステムプログラムでその利便性が評価されるようになった[19][20]。
1990年代:新しいプログラミング言語の登場
[編集]1990年代には、PythonやPerlなどの新しいプログラミング言語の登場により、スネークケースがこれらの言語の標準的な命名規則として定着し始めた。これにより、スネークケースは多くのプログラミングコミュニティで認知されるようになった[21][22]。
2001年:Pythonコーディング規約「PEP8」
[編集]2001年にリリースされたPythonコーディング規約の決定版「PEP8」では、スネークケースは単に「lower_case_with_underscores」と呼ばれていた[23][13]。この規約により、スネークケースがPythonコミュニティでの標準的な命名規則として広く認識されるようになった。
2004年:「snake_case」という呼称の登場
[編集]「snake_case」という呼称は、2004年のUsenet内のRubyコミュニティで[24]、Gavin Kistnerが以下のようなコメントにおいて使用したのが初であるとされている[4][25]。
ところで……この命名スタイルをお前らなんて呼んでる? スネークケースか〜? 誰かが直してくれるまで俺はこう呼ぶことにするよ。
2000年代後半:Webフレームワークでの採用
[編集]2000年代後半には、スネークケースは他のプログラミング言語やフレームワークでも広く採用されるようになった。特に、Ruby on RailsやDjangoといったWebフレームワークにおいて、データベースのテーブル名やカラム名にスネークケースが標準的に使用されるようになった[26][27]。
2010年代:オープンソースと企業での標準化
[編集]2010年代には、スネークケースはさらに普及し、オープンソースプロジェクトや企業のコーディングスタイルガイドにおいても標準的な命名規則として採用されることが増えた。また、JavaScriptの一部ライブラリやフレームワークでもスネークケースが推奨されるケースが見られるようになった[11][28]。
現代:データサイエンスと機械学習の分野での重要性
[編集]現代においても、スネークケースは広く使用され続けている。特に、データサイエンスや機械学習の分野において、Pythonが主要な言語として使われているため、スネークケースの重要性はさらに増している[29][30]。また、多くの企業やプロジェクトでスネークケースが推奨される命名規則として採用されており、コードの一貫性と可読性を確保するための重要な形式となっている[11][12]。
これらの歴史的背景から、スネークケースは多くのプログラミング言語で広く採用され、コードの可読性と一貫性を高める重要な命名規則の一つとして定着している。
利点
[編集]スネークケースには多くの利点がある。以下にそれらを挙げる。
可読性の向上
[編集]単語をアンダースコア_
で区切ることで、関数名や変数名が直感的に理解しやすくなる[3][6]。例えば、example_variable_name
という名前は、どの単語が含まれているかが一目で分かるため、可読性が向上する。
視覚的な一貫性
[編集]スネークケースは視覚的に一貫性があり、コードの全体的な美観を損なわない。アンダースコア_
は他の記号に比べて目立たないため、コードが煩雑になることを防ぎつつ、明確な区切りを提供する[11][12]。
広範な標準化
[編集]スネークケースは多くのプログラミング言語やフレームワークで標準的な命名規則として採用されているため、異なる言語間での移行やコードの共有が容易になる[11][12]。この一貫性は、複数のプロジェクトやチームで作業する際に特に有用である。
長い名前での有効性
[編集]スネークケースは特に長い名前や複雑な名前において、その有効性が発揮される。長い名前でも単語が明確に区別されるため、コードレビューやデバッグの際に誤解が生じにくくなる[6][11]。
スタイルガイドでの推奨
[編集]多くのコーディングスタイルガイドでスネークケースが推奨されている。これにより、新しいメンバーが参加する際や異なるチーム間でのコラボレーションがスムーズになる[11][12]。
以上のような利点により、スネークケースは多くの開発者やプロジェクトで推奨される命名規則となっている。コードの可読性と一貫性を高めるための重要な形式であり、様々なプログラミング環境でその有用性が認められている。
欠点
[編集]スネークケースには多くの利点が存在する一方で、いくつかの欠点も存在する。
入力の煩雑さ
[編集]スネークケースは、単語を区切る度にアンダースコア_
を入力する必要があるため、タイピングが煩雑になることがある。特に長い名前や複数の単語を含む名前を入力する際に、余分な労力がかかることがある[6][11]。
視覚的な断続性
[編集]アンダースコア_
が多用されることで、人によってはコードが断続的に見える場合がある。特に大量のスネークケースが使用される場面では、コード全体の視覚的な流れが途切れる可能性がある[6][11]。
一部言語やツールでの非推奨
[編集]スネークケースは多くの言語やフレームワークで標準とされているが、いくつかのプログラミング言語やツールでは別の命名規則が推奨される場合がある。例えば、JavaやC#ではキャメルケースやパスカルケースが一般的であり、スネークケースの使用は推奨されないことがある[6][12]。
読み手の好み
[編集]スネークケースは多くの開発者に受け入れられているが、読み手の好みによっては他の命名規則の方が好まれる場合がある。特に、視覚的に統一された命名規則を好む開発者にとって、スネークケースは煩雑に感じられることがある[6][11]。
以上のような欠点があるものの、スネークケースは依然として多くの場面で有効な命名規則として使用されている。欠点を理解し、適切な場面で利用することで、コードの品質と可読性を維持することが可能である。
適用範囲
[編集]スネークケースは多くのプログラミング環境で広く使用されており、その適用範囲は非常に広い。
関数名
[編集]スネークケースは、関数名に頻繁に使用される[3][22]。これにより、関数の目的が明確に表現され、他の開発者がコードを理解しやすくなる。例えば、calculate_total
やfetch_user_data
などの関数名が一般的である。Python、Ruby、Perlなどが該当する。
変数名
[編集]変数名にもスネークケースはよく使用される[3][22]。特に、複数の単語で構成される変数名の場合、アンダースコア_
で単語を区切ることで可読性が向上する。例えば、user_name
やtotal_amount
などが典型的な例である。Python、Ruby、Perl、PHPなどが該当する。
ファイル名
[編集]ファイル名にスネークケースを使用することで、ファイルシステム内での整理がしやすくなる[31][32]。特に、プロジェクト内で複数のファイルを扱う場合、一貫した命名規則は重要である。例えば、user_data.txt
やconfig_settings.json
などが典型的な例である。Python、Ruby、JavaScriptなどが該当する。
データベースのカラム名
[編集]データベーススキーマにおいても、スネークケースが広く使用される[33][34]。これにより、テーブルやカラム名が一貫して読みやすくなる。例えば、user_id
やorder_date
などが一般的である。SQL(MySQL、PostgreSQL、SQLiteなど)、Django ORMなどが該当する。
定数
[編集]定数名にもスネークケースが用いられることが多い[3][12]。定数は通常、大文字で記述されることが多いが、スネークケースを使用することで単語の区切りが明確になる。例えば、MAX_CONNECTIONS
やDEFAULT_TIMEOUT
などが典型的な例である。Python、Ruby、C言語、C++などが該当する(なお、全て大文字で表現するこの形式は「スクリーミングスネークケース」と呼ばれる[3][12]。別称あり)。
設定ファイル
[編集]設定ファイル内のキー名にもスネークケースが使用されることが多い[3][35]。これにより、設定項目が明確に区別され、設定ファイルの可読性が向上する。例えば、database_name
やserver_port
などが一般的である。YAML、JSON、INIファイルなどが該当する。
以上のように、スネークケースは多岐に渡る場面で使用されており、その一貫性と可読性の高さから、多くの開発者やプロジェクトで推奨されている命名規則である。
適用例
[編集]スネークケースは多くのプログラミング環境で広く使用されており、その適用範囲は非常に広い。以下に、いくつかのプログラミング言語での具体的な適用例を挙げる。
Python
[編集]Pythonでは、関数名や変数名にスネークケースが一般的に使用されている。
# 変数名
user_name = "John Doe"
total_amount = 100.50
# 関数名
def calculate_total(amount, tax_rate):
total = amount + (amount * tax_rate)
return total
# 定数
MAX_CONNECTIONS = 10
DEFAULT_TIMEOUT = 30
この例では、変数名(user_name
、total_amount
)、関数名(calculate_total
)にスネークケースが使用されている(定数MAX_CONNECTIONS
、DEFAULT_TIMEOUT
はスクリーミングスネークケース)。これにより、各要素の名称が読みやすくなっている。
Ruby
[編集]Rubyでも同様に、関数名や変数名にスネークケースが広く使用されている。
# 変数名
user_name = "John Doe"
total_amount = 100.50
# 関数名
def calculate_total(amount, tax_rate)
total = amount + (amount * tax_rate)
return total
end
# 定数
MAX_CONNECTIONS = 10
DEFAULT_TIMEOUT = 30
この例では、変数名(user_name
、total_amount
)、関数名(calculate_total
)にスネークケースが使用されている(定数MAX_CONNECTIONS
、DEFAULT_TIMEOUT
はスクリーミングスネークケース)。スネークケースを使うことで、コードの可読性が向上している。
JavaScript
[編集]JavaScriptでも同様に、関数名や変数名にスネークケースが広く使用されている。
// 変数名
let user_name = "John Doe";
let total_amount = 100.50;
// 関数名
function calculate_total(amount, tax_rate) {
let total = amount + (amount * tax_rate);
return total;
}
// 定数
const MAX_CONNECTIONS = 10;
const DEFAULT_TIMEOUT = 30;
この例では、変数名(user_name
、total_amount
)、関数名(calculate_total
)にスネークケースが使用されている(定数MAX_CONNECTIONS
、DEFAULT_TIMEOUT
はスクリーミングスネークケース)。スネークケースを使用することで、単語間の区切りが明確になっている。
SQL
[編集]SQLでは、データベースのテーブル名やカラム名にスネークケースがよく使用される。
-- データベースのカラム名
CREATE TABLE users (
user_id INT PRIMARY KEY,
user_name VARCHAR(100),
created_at TIMESTAMP
);
INSERT INTO users (user_id, user_name, created_at)
VALUES (1, 'John Doe', CURRENT_TIMESTAMP);
この例では、テーブル名(users
)およびカラム名(user_id
、user_name
、created_at
)にスネークケースが使用されている。これにより、データベーススキーマの可読性が向上している。
設定ファイル(YAML)
[編集]YAML形式の設定ファイルでは、キー名にスネークケースが使われることが多い。
# 設定ファイルのキー名
database_name: my_database
server_port: 8080
この例では、キー名(database_name
、server_port
)にスネークケースが使用されている。これにより、設定項目が明確に区別されている。
設定ファイル(JSON)
[編集]JSON形式の設定ファイルでも、キー名にスネークケースがよく使用される。
{
"database_name": "my_database",
"server_port": 8080
}
この例では、キー名(database_name
、server_port
)にスネークケースが使用されている。スネークケースを使うことで、設定項目が視覚的に整理されている。
スネークケースは、その明瞭さと一貫性から、多くの開発者にとって便利な命名規則として認識されている。
スネークケースを使用しているプログラミング言語のリスト
[編集]- ABAP[36]
- Ada - なお頭文字は大文字[37]。
- C++ - Boost C++ライブラリ[38]。
- C - 標準ライブラリの一部の型名には使用されるが、関数名には使用されない。
- Eiffel - クラスと特性(フィーチャー)名[39]。
- Elixir - アトム、変数、関数名[40]。
- Erlang - 関数名[41]。
- GDScript - 変数名と関数名[42]。
- Magik
- OCaml - 値、型、モジュール名[43]。
- Perl - レキシカル変数とサブルーチン[44]。
- Oracle SQL and PL/SQL - 引用符で囲まれていない全ての識別子(テーブル、カラム、インデックス、制約、PL/SQL変数、定数、プロシージャ / 関数、トリガーなど)については、Oracle自身の公式なものではないが、多くの著名な"インフルエンサー"によって推奨されており、公式のOracleドキュメント全体で使用されている[45][注釈 1]。引用符で囲まれていない全てのスネークケースの識別子は、内部的にはスクリーミングスネークケースの識別子として実際に表現されている[注釈 2]。
- Prolog - アトム(述語名、関数名、および定数)と変数の両方[46][注釈 3]。
- Python - 変数名、関数名、メソッド名、およびモジュールやパッケージ(つまりファイル)名[23][注釈 4]。
- R - 変数名、関数名、および引数名に対して、特にtidyverseスタイルで[47][注釈 5]。
- Ruby - 変数名とメソッド名に対して[48][注釈 6]。
- Rust - 変数名、関数名、メソッド名、モジュール名、およびマクロに対して[49][注釈 7]。
- Tcl
- Terraform - リソースと変数に対して[50][注釈 8]。
命名規則一覧
[編集]名称 | 英語表記 | 説明 | 表記例 |
---|---|---|---|
スネークケース | snake case | 単語間をアンダースコア(_ )で繋ぐ形式。
|
example_variable
|
スクリーミングスネークケース | screaming snake case | 単語間をアンダースコア(_ )で繋ぎ、全て大文字にする形式。「アッパースネークケース(upper snake case)」や「コンスタントケース(constant case)」とも呼ばれる[51]。
|
EXAMPLE_VARIABLE
|
キャメルケース | camel case | 各単語の頭文字を大文字にし、単語を連結する形式(最初の単語のみ頭文字が小文字)。.NETの文脈で使用。 | exampleVariable
|
ローワーキャメルケース | lower camel case | キャメルケースと同じ形式だが、フレームワークや言語に依存しない表現。 | exampleVariable
|
パスカルケース | Pascal case | 各単語の頭文字を大文字にし、単語を連結する形式(キャメルケースと似ているが、最初の単語の頭文字も大文字)。.NETの文脈で使用。 | ExampleVariable
|
アッパーキャメルケース | upper camel case | パスカルケースと同じ形式だが、フレームワークや言語に依存しない表現。 | ExampleVariable
|
ケバブケース | kebab case | 単語間をハイフン(- )で繋ぎ、各単語の頭文字を小文字にする形式。
「チェインケース / チェーンケース(chain case)」とも呼ばれる[51]。 |
example-variable
|
トレインケース | train case | 単語間をハイフン(- )で繋ぎ、各単語の頭文字を大文字にする形式。
|
Example-Variable
|
ドットケース | dot case | 単語間をドット(. )で繋ぐ形式。
|
example.variable
|
脚注
[編集]注釈
[編集]- ^ 原文:for all unquoted identifiers (tables, columns, indexes, constraints, PL/SQL variables, constants, procedures/functions, triggers,...), although not official by Oracle itself, still recommended by the majority of known "influencers" and used throughout the official Oracle documentation.
- ^ 原文:All unquoted snake_case identifiers are actually internally represented as SCREAMING_SNAKE_CASE identifiers.
- ^ 原文:for both atoms (predicate names, function names, and constants) and variables.
- ^ 原文:for variable names, function names, method names, and module or package (i.e. file) names.
- ^ 原文:for variable names, function names, and argument names, especially in the tidyverse style.
- ^ 原文:for variable and method names.
- ^ 原文:for variable names, function names, method names, module names, and macros.
- ^ 原文:for resources and variables.
- ^ 「Pascal」は固有名詞であるため、先頭を小文字にしてはならない。
出典
[編集]- ^ a b c “スネークケースとは - IT用語辞典”. IT用語辞典 e-Words. 2024年7月16日閲覧。
- ^ a b “スネークケースとは? 意味や使い方”. コトバンク. 2024年7月16日閲覧。
- ^ a b c d e f g h i j k Beazley, David; Jones, Brian K. (2013-05-10) (英語). Python Cookbook: Recipes for Mastering Python 3. "O'Reilly Media, Inc.". ISBN 978-1-4493-5735-1
- ^ a b Flanagan, David; Matsumoto, Yukihiro (2008-01-25) (英語). The Ruby Programming Language: Everything You Need to Know. "O'Reilly Media, Inc.". ISBN 978-0-596-55465-1
- ^ a b c d Kernighan, Brian W.; Ritchie, Dennis M. (1978) (英語). The C Programming Language. Prentice-Hall. ISBN 978-0-13-110163-0
- ^ a b c d e f g h i Mcconnell, Steve (英語). Code Complete, 2nd Edition. Wiley India Pvt. Limited. ISBN 978-93-5004-124-6
- ^ “CS 1110: Notes on Style”. www.cs.cornell.edu. 2024年7月16日閲覧。
- ^ “Style Guide” (英語). protobuf.dev. 2024年7月16日閲覧。
- ^ Cwalina, Krzysztof; Abrams, Brad (2008-10-22) (英語). Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries. Pearson Education. ISBN 978-0-321-60500-9
- ^ Skeet, Jon (2019-03-23) (英語). C# in Depth: Fourth Edition. Manning Publications. ISBN 978-1-61729-453-2
- ^ a b c d e f g h i j k l m Martin, Robert C. (2008-08-01) (英語). Clean Code: A Handbook of Agile Software Craftsmanship. Pearson Education. ISBN 978-0-13-608325-2
- ^ a b c d e f g h i j k l m Thomas, David; Hunt, Andrew (2019-07-30) (英語). The Pragmatic Programmer: Your journey to mastery, 20th Anniversary Edition. Addison-Wesley Professional. ISBN 978-0-13-595691-5
- ^ a b Ramalho, Luciano (2022-03-31) (英語). Fluent Python. "O'Reilly Media, Inc.". ISBN 978-1-4920-5632-4
- ^ Hernandez, Michael J. (2021-07-27) (英語). Database Design for Mere Mortals: A Hands-On Guide to Relational Database Design. Addison-Wesley. ISBN 978-0-13-312227-5
- ^ “Snake case - MDN Web Docs Glossary: Definitions of Web-related terms | MDN” (英語). developer.mozilla.org (2023年9月8日). 2024年7月16日閲覧。
- ^ “Basic Usage :: RuboCop Docs”. docs.rubocop.org. 2024年7月16日閲覧。
- ^ King, K. N. (2017-07-05) (英語). C Programming: A Modern Approach, 2nd Edition. CreateSpace Independent Publishing Platform. ISBN 978-1-5485-8754-3
- ^ Petzold, Charles (2000-10-11) (英語). Code: The Hidden Language of Computer Hardware and Software. Microsoft Press. ISBN 978-0-7356-3872-3
- ^ Kernighan, Brian W.; Pike, Rob (1984) (英語). The UNIX Programming Environment. Prentice-Hall. ISBN 978-0-13-937681-8
- ^ Stevens, W. Richard; Rago, Stephen A. (2013-06-10) (英語). Advanced Programming in the UNIX Environment. Addison-Wesley. ISBN 978-0-321-63800-7
- ^ Wall, Larry; Christiansen, Tom; Orwant, Jon (2000) (英語). Programming Perl. O'Reilly Media, Incorporated. ISBN 978-0-596-00027-1
- ^ a b c Lutz, Mark (2013-06-12) (英語). Learning Python: Powerful Object-Oriented Programming. "O'Reilly Media, Inc.". ISBN 978-1-4493-5569-2
- ^ a b van Rossum, Guido; Warsaw, Barry; Coghlan, Nick (2001年7月5日). “PEP 0008 -- Style Guide for Python Code”. 2023年8月9日閲覧。
- ^ Gavin Kistner (23 February 2004). "Appropriate use of camelCase". Newsgroup: comp.lang.ruby. Usenet: HBn_b.379957$xy6.2073499@attbi_s02. 2015年8月13日閲覧。
- ^ developer), Russ Olsen (Software (2011) (英語). Eloquent Ruby. Addison-Wesley. ISBN 978-1-282-98429-5
- ^ Ruby, Sam; Copeland, David B.; Thomas, Dave (2020-02-10) (英語). Agile Web Development with Rails 6. Pragmatic Bookshelf. ISBN 978-1-68050-753-9
- ^ Vincent, William S. (2018) (英語). Django for Beginners: Build Websites with Python and Django. Independently Published. ISBN 978-1-9831-7266-3
- ^ Crockford, Douglas (2008-05-08) (英語). JavaScript: The Good Parts: The Good Parts. "O'Reilly Media, Inc.". ISBN 978-0-596-55487-3
- ^ McKinney, Wes (2017-09-25) (英語). Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython. "O'Reilly Media, Inc.". ISBN 978-1-4919-5763-9
- ^ Géron, Aurélien (2022-10-04) (英語). Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow. "O'Reilly Media, Inc.". ISBN 978-1-0981-2246-1
- ^ Raymond, Eric S. (2003-09-23) (英語). Art of UNIX Programming, The, Portable Documents. Addison-Wesley Professional. ISBN 978-0-13-246588-5
- ^ Nemeth, Evi; Snyder, Garth; Hein, Trent R.; Whaley, Ben; Mackin, Dan (2017-09-14) (英語). UNIX and Linux System Administration Handbook. Addison-Wesley Professional. ISBN 978-0-13-427829-2
- ^ Karwin, Bill (2010) (英語). SQL Antipatterns: Avoiding the Pitfalls of Database Programming. Pragmatic Bookself. ISBN 978-1-68050-007-3
- ^ Redmond, Eric; Wilson, Jim (2012-05-11) (英語). Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement. Pragmatic Bookshelf. ISBN 978-1-68050-468-2
- ^ Morris, Kief (2016-06-09) (英語). Infrastructure as Code: Managing Servers in the Cloud. "O'Reilly Media, Inc.". ISBN 978-1-4919-2439-6
- ^ “Naming Conventions in ABAP Objects”. help.sap.com. 2020年7月28日閲覧。
- ^ “Ada Programming Guidelines”. 2021年12月19日時点のオリジナルよりアーカイブ。2021年12月19日閲覧。
- ^ “Boost Library Requirements and Guidelines”. 2015年8月13日閲覧。
- ^ “Eiffel Class and Feature Names” (28 December 2019). 2023年8月9日閲覧。
- ^ “Elixir Style Guide”. GitHub (May 2020). 2023年8月9日閲覧。
- ^ “Programming Rules”. 2017年8月11日閲覧。
- ^ “GDScript Style Guide”. 2023年8月9日閲覧。
- ^ “Xen wiki”. 2017年3月15日閲覧。
- ^ Damian Conway (2005). Perl Best Practices. O'Reilly Media Inc.. p. 44. ISBN 978-0596001735
- ^ “Quick Guide to Some Sources for Naming Conventions for Oracle Database Development”. stevenfeuersteinonplsql.blogspot.com. 2020年12月30日閲覧。
- ^ Michael A. Covington; Roberto Bagnara; Richard A. O'Keefe; Jan Wielemaker; Simon Price (2009). "Coding Guidelines for Prolog (v.3)". p. 14. arXiv:0911.2899 [cs.PL]。
- ^ Wickham, Hadley. The tidyverse style guide
- ^ “Ruby · Naming Convention”. namingconvention.org. 2023年8月9日閲覧。
- ^ “Naming – Rust API Guidelines”. 2023年8月9日閲覧。
- ^ “Terraform Naming Conventions” (Feb 2022). 2023年8月9日閲覧。
- ^ a b “スネークケースとは - IT用語辞典”. IT用語辞典 e-Words. 2024年7月7日閲覧。