プログラミングにおける命名規約について

プログラミングでの命名規約をうろ覚えなままなので、この機会にしっかり覚えようと思う。命名規約を調べる為だけに本の資料を引っ張り出さなくても良いように備忘録。

パッケージ名

パッケージ名は英小文字と数字で記述し、英単語は単数形とする。識別子間をドットで区切る。パッケージ名には省略語を使用せず、第三者がパッケージの内容を理解しやすいことを優先する。パッケージ名は組織に割り当てられたインターネットドメイン名に基づいて命名することが推奨されている(他者の作成したパッケージとの名前の重複を
避けるため)
 
もしアメリカにMySoft社という組織があり、dashboardの機能を持ったパッケージを作る場合

ca.mysoft.dashboard

もし日本にニッポンソフトという組織があり、GlobalSoftというプロジェクトのAudio関係の機能を持ったパッケージを作る場合

jp.co.nipponsoft.globalsoft.audio

クラス名

クラス名は役割を表す名前にする。先頭大文字。それ以後は(英単語として)区切りを大文字とする。(アッパーキャメルケース)省略語を使用してはいけない。

FirstDayAndLastDayCalculation

テストクラスの場合

JUnit によるテストクラスを用意する場合、JUnitの規定によりクラス名にTestの文字が含まれることが要求されるので、この場合のクラス名は「クラス名 + Test」とする。

DateEditTest

例外クラスの場合

既に用意された例外クラスではなく、独自に例外クラスを作成する場合は最後を Exception としたクラス名とする。

DateEditException

インターフェースの場合

クラス名に準じて命名し、最後にInterfaceをつける。

DocumentHandlerInterface

抽象クラスの場合

抽象クラスはクラス名に準じて命名し、最初、もしくは最後にAbstractをつける。

AbstractBusiness

メソッド名

先頭は小文字で、それ以後はクラス名と同様に英単語としての区切りを大文字にする。(ローワーキャメルケース)省略語を使用してはいけない。

getDate()

ファクトリメソッドの場合

ファクトリメソッドは内部でオブジェクトを new してそのインスタンスを戻り値として返却するもの。このようなメソッドの場合は引数が無い場合は先頭にnewをつけ、引数がある場合はcreateをつける。

createOutputArea(25,25,100,120)

コンバータメソッドの場合

コンバータメソッドというのはオブジェクトを別のオブジェクトに変換するものです。対象のオブジェクト名の先頭に to をつけたものとします。

toStringData()

属性の取得・設定メソッド

一般的に「ゲッター、セッター」「アクセサメソッド」と呼ばれている。取得メソッドでは先頭にgetをつけ、設定メソッドではsetをつけたものとする。

getDate()
setDate(int date)

boolean 変数を返すメソッド

boolean 変数を返すメソッドについては、「is + 形容詞」の名称を用いる。

isEnabled()

変数名

役割が読み取れる名称にする。変数名の先頭は小文字で表記し、英単語の区切りごとに大文字で表記する。(ローワーキャメルケース)スコープとライフサイクルを考慮して名前付けを行うとコードが読みやすい。

startDate

定数の場合

すべて大文字で単語を「_」でつないだ名称をつける。

ACCESS_ERROR_MESSAGE

メンバ変数の場合

頭に「_」を付ける。
※しかし、Javaであればメンバ変数の参照に使用するキーワードとしてthisが用意されているし、メンバ変数に命名規約を用いる必要があるほどの大規模なクラスというのは設計がまずいことが多いので、あまり見たことがない。

_listWindowParts

参考
書籍 最新Javaコーディング作法  プロが知るべき、107の規約と21の心得