うまくメソッド名を付けるための参考情報

[クラス名編をつくりました](http://qiita.com/KeithYokoma/items/ee21fec6a3ebb5d1e9a8)

あるメソッドを定義しようとするとき、そのメソッドを使う人達が名前からどんなことをするか理解できるようにするには、メソッドの内容に応じて適切な情報量の命名が求められます。

この記事では、メソッド名に用いることでどのような情報が提供できるかを見ていきたいと思います。

# 真偽値を返すメソッド

|場所|単語|意味|例|
|----|----|----|----|
|Prefix|`is`|(オブジェクトが)期待する状態になっているかどうか|`isChecked`|
|Prefix|`can`|(オブジェクトが)期待する動作をできるかどうか|`canRemove`|
|Prefix|`should`|(呼び出し側が)ある命令を実行したほうがよいかどうか|`shouldMigrate`|
|Prefix|`has`|(オブジェクトが)期待するデータ・プロパティを持っているかどうか|`hasObservers`|
|Prefix|`needs`|(呼び出し側が)ある命令を実行する必要があるかどうか|`needsMigrate`|

# 必要に応じてしか実行されない処理をするメソッド

|場所|単語|意味|例|
|----|----|----|----|
|Suffix|`IfNeeded`|必要なら実行し、必要なければ何もしない|`drawIfNeeded`|
|Prefix|`might`|同上|`mightCreate`|
|Prefix|`try`|実行を試み、失敗した場合は例外を飛ばすか、エラーコードを返す|`tryCreate`|
|Suffix|`OrDefault`|実行を試み、失敗した場合は既定値を返す|`getOrDefault`|
|Suffix|`OrElse`|実行を試み、失敗した場合は引数で指定した値を返す|`getOrElse`|
|Prefix|`force`|強制的に実行を試みる。エラーは例外ないし返り値で表す|`forceCreate`, `forceStop`|

# 非同期処理に関連するメソッド

|場所|単語|意味|例|
|----|----|----|----|
|Prefix|`blocking`|スレッドをブロックするメソッド|`blockingGetUser`|
|Suffix|`InBackground`|バックグラウンドスレッドで実行されるメソッド|`doInBackground`|
|Suffix|`Async`|非同期メソッド|`sendAsync`|
|Suffix|`Sync`|（対応する非同期メソッドが存在する）同期メソッド|`sendSync`|
|Prefix or Stem|`schedule`|ジョブやタスクをキューに積む|`schedule`, `scheduleJob`|
|Prefix or Stem|`post`|同上|`postJob`|
|Prefix or Stem|`execute`|非同期処理を実行する|`execute`, `executeTask`|
|Prefix or Stem|`start`|同上|`start`, `startJob`|
|Prefix or Stem|`cancel`|非同期処理の実行を止める|`cancel`, `cancelJob`|
|Prefix or Stem|`stop`|同上|`stop`, `stopJob`|

# コールバックメソッド

|場所|単語|意味|例|
|----|----|----|----|
|Prefix|`on`|何かが起こった時に実行される|`onCompleted`|
|Prefix|`before`|何かが起こる前に実行される|`beforeUpdate`|
|Prefix|`pre`|同上|`preUpdate`|
|Prefix|`will`|同上|`willUpdate`|
|Prefix|`after`|何かが起こったあとに実行される|`afterUpdate`|
|Prefix|`post`|同上|`postUpdate`|
|Prefix|`did`|同上|`didUpdate`|
|Prefix|`should`|何かを起こしてもいいか確認するとき実行される|`shouldUpdate`|

# コレクションの操作に関するメソッド

|単語|意味|例|
|----|----|----|
|`contains`|指定したものと同じオブジェクトを持っているかどうか|`contains`|
|`add`|追加する|`addJob`|
|`append`|同上|`appendJob`|
|`insert`|n番目に追加する|`insertJob`|
|`put`|キーに対応する要素を追加する|`putJob`|
|`remove`|要素を削除する|`removeJob`|
|`enqueue`|行列末尾に追加する|`enqueueJob`|
|`dequeue`|行列先頭を取り出して取り除く|`dequeueJob`|
|`push`|スタックの先頭に追加する|`pushJob`|
|`pop`|スタックの先頭を取り出して取り除く|`popJob`|
|`peek`|スタックの先頭を取り出す(スタックからは取り除かない)|`peekJob`|
|`find`|条件にあうものを探す|`findById`|

# 状態に関するメソッド

|単語|意味|例|
|----|----|----|
|`ensure`|期待する状態かどうかをチェックし、そうでない場合は例外を投げるかエラーコードを返す|`ensureCapacity`|
|`validate`|正しい状態かどうかをチェックし、そうでない場合は例外を投げるかエラーコードを返す|`validateInputs`|

# オブジェクトのライフサイクルを扱うメソッド

|単語|意味|例|
|----|----|----|
|`initialize`|初期化。遅延初期化のメソッドとしても。|`initialize`|
|`abandon`|デストラクタの代替|`abandon`|
|`destroy`|同上|`destroy`|
|`dispose`|同上|`dispose`|

# データに関するメソッド

|単語|意味|例|
|----|----|----|
|`create`|新しく作る|`createAccount`|
|`new`|新しく作る|`newAccount`|
|`from`|既存のものから新しく作る、あるいは別のデータから新しく作る|`fromConfig`|
|`to`|変換する|`toString`|
|`update`|既存のものを書き換える|`updateAccount`|
|`load`|読み込む|`loadAccount`|
|`fetch`|(リモートから)読み込む|`fetchAccount`|
|`delete`|削除する|`deleteAccount`|
|`remove`|削除する|`removeAccount`|
|`save`|保存する|`saveAccount`|
|`store`|保存する|`storeAccount`|
|`commit`|保存する|`commitChange`|
|`apply`|保存・適用する|`applyChange`|
|`clear`|データを消す、あるいは初期状態に戻す|`clearAll`|
|`reset`|データを消す、あるいは初期状態に戻す|`resetAll`|

他にもあれば追記していきますし、編集リクエスト、コメント等いただければどんどんください！