
変数や関数の名前をどういう形にすればよいか迷っています。



変数や関数の命名規則について説明します
命名規則について
プログラムの変数や関数、DBのテーブルやHTMLのCLASS属性などの名前は、ルールを決めて書き方を揃えておかないと、読みづらくなってバグにもつながります。
この記事では、いろいろある命名規則の書き方について説明します。
命名規則に対する考え方は人それぞれで、どれが優れていると言い切れるものではないので、この記事の内容も考え方の一つの例です。
実際の業務においては、メンバー内で命名規則が統一されていることが一番重要です。


命名規則の基本的なルール
命名規則についての基本的なルールとしては以下のようなものがあります。
日本語ではなく英字で書く
最近では、関数名や変数名を日本語で書いてもOKの言語が増えてきていますが、英字で書くのが一般的だと思います。
ただ、日本語で書くことのメリットもありますので、プロジェクト全メンバーの合意があれば、日本語で書くのでもよいとは思います。
ローマ字ではなく英語で書く
できるだけローマ字表記ではなく英語表記にした方がわかりやすいと思います。
AddItem(△TsuikaItem)
CalcTax(△KeisanTax)
英語だと分かりにくい場合はローマ字にする
ただし、日本固有のものや業界用語、あるいは英語に翻訳すると意味が伝わりにくいものは、ローマ字表記にした方がわかりやすいです。
Nendo(年度)
YukeiKoteiShisan(有形固定資産)
ローマ字の表記方法を揃える
つ
はtsu
、消費税
はSyohiZei
(SyouhiZeiではなく)など、ローマ字の表記は統一しないとメンテナンスしにくくなります。
ヘボン式ローマ字に統一するのがわかりやすいと思います。
英単語は省略しない
英単語をいくつか連ねると文字数が多くなりますが、基本的には省略せずに書いた方がよいとされています。
省略ルールが人によってバラバラだと意味が分かりにくかったり、検索しにくくなることでメンテナンス性が悪くなります。
Document(△Doc)
Table(△Tbl)
省略形が一般的なものは省略形でOK
HTML
やMAX
など普段から省略形を使うものは、正式名称でなくそのまま省略形で書いてよいと思います。
OutputHTML(OutputHyperTextMarkupLanguageとはしない)
MaxValue(MaximumValueとしなくてもOK)
広く使われている省略形はOK
string
→str
やenvironment
→env
など、プログラムで広く一般的に使われている省略形に関しては、意味が通じることからOKとする場合も多いです。
ローカル変数は省略形もOK
ローカル変数は、有効範囲がその関数内だけでメンテナンス性への影響が少ないことから、省略形の使用をOKとする場合も多いです。
変数は英語の名詞句の形にする
変数は値の入れ物なので、その値の名前にすることが多いです。
user_name(ユーザー名)
created_year(製造年)
名詞+前置詞とする場合
特定の状態の値を持つ変数の場合、名詞+前置詞とすることもよくあります。
CreatedAt(作成日時)
UpdatedAt(更新者)
bool値(TRUE、FALSE)の場合
TRUEまたはFALSEの2つの値を持つbool値(真理値)の変数の場合は先頭にis
やhas
、can
などを付けることが多いです。
IsSameValue(同じ値か)
HasAuthority(権限があるか)
複数の値が入る変数は複数形にする
リスト型の変数など、複数の値が入る変数には複数形のs
を付けます。
Users(複数のユーザー)
関数名は動詞+目的語にする
関数名は、動詞+目的語にするのが一般的です。
GetUserList()(ユーザー一覧取得)
CreateUser()(ユーザー作成)
命名規則の種類
キャメルケース
キャメルケースは、各単語ごとに先頭文字を大文字にする命名規則です。
アッパーキャメルケース(パスカルケース)
キャメルケースで、最初の単語の先頭も大文字にする命名規則をアッパーキャメルケースといいます。
パスカルケースともいいます。
AddPoint
DeleteCustomSettings
GetPostData
ローワーキャメルケース
キャメルケースで、最初の単語の先頭は小文字にする命名規則をローワーキャメルケースといいます。
addPoint
deleteCustomSettings
getPostData
スネークケース
各単語をアンダースコア_
でつなげる命名規則をスネークケースといいます。
get_image
calc_price
ケバブケース(チェインケース)
各単語をハイフン-
でつなげる命名規則をケバブケースといいます。
チェインケースともいわれています。
menu-list
sub-item
ハンガリアン記法
先頭に意味を持つ接頭辞を付加する記法を、ハンガリアン記法といいます。
アプリケーションハンガリアン記法
プログラム内での変数の意味を接頭辞にする記法を、アプリケーションハンガリアン記法といいます。
newPassword(新パスワード)
oldPassword(古いわすワード)
nowDateTime(現在の日時)
システムハングリアン記法
変数のデータ型などを変数の接頭辞にする記法を、システムハングリアン記法といいます。
intUserNo(数値としてのユーザー番号)
strUserNo(文字列としてのユーザー番号)

