技術の犬小屋

Webプログラミングを餌に生きる犬のメモ帳

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

パッケージ名

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

インスタンス変数(メンバ変数)の場合

 
例:_listWindowParts
※インスタンス変数(メンバ変数)に対し、クラス変数(staticな変数)もあるが、こちらは特に命名規則が存在しない。
 
 
以上
 
 
参考
書籍 最新Javaコーディング作法  プロが知るべき、107の規約と21の心得

Redmineの使い方 arrow-right
Next post

arrow-left Androidのデバッグ手法
Previous post

  • 通りすがり

    2016年2月10日 at 1:48 PM | 返信

    パッケージ名は英小文字と数字で記述って自分でも書いてるのに。

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

  • SmokyDog

    2016年2月14日 at 2:11 PM | 返信

    コメントありがとうございます。該当箇所修正しました。

コメントを残す