もふもふ技術部

IT技術系mofmofメディア

メソッド(関数)の命名で使えそうな英単語を集めてみた

メソッド名の命名って悩みますよね。

え?悩んだことないって?そんなあなたは3流プログラマか、でなければネイティブアメリカンである疑いがあります。自分の胸に手を当てて真実を探してください。

それはさておき、自分以外の人が読んでもすぐに意味を理解することが出来て、かつ無駄なく完結でシンプルな名前をつけようとすると、これがなかなか難しい。

説明的なメソッド名にすれば意味は明確になりますが、どっかの言語みたいな感じにやたら長いメソッド名にされると書くのがめんどい。だったら言葉のニュアンスをフル活用して短く簡潔な名前にした方が覚えやすいし使いやすいよねと。

メソッド名についてはIDEで補完されるからウンヌンっていう意見もあるけど、それはそれで別の議論なので置いておくことさせて。

ちなみに、メソッド名を考えるとき、生粋の日本人の語彙力ではなかなかニュアンスまで踏み込んで候補を導きだすのは難しいので、シソーラス類語辞典が激オススメ。

http://ejje.weblio.jp/english-thesaurus/

例えば、検索系処理の命名候補を調べたいなら、searchとかfindで検索すれば近い意味の単語が調べられます。便利。

類語辞典で調べながら、ぼくの主観のニュアンスを入れてまとめてみました。あくまでも主観なのでニュアンスは間違ってる可能性は十分にある。それから、ぼくはRuby使いなのでRuby的なニュアンスを含んでいるところも結構ありそう。その点了承されたし。

検索・取得系のメソッド名

メソッド名 ニュアンス
get オブジェクトから値を取り出す。DB取得など別の場所から情報を取得するときには使わない。
fetch 別の場所から情報を取得する。DB検索や、ネットワーク越しにデータを取得する場合に使用する。
search DBを検索しに行く。検索したい対象が複数件存在する、もしくは存在しない可能性がある。
find DBを検索しに行く。必ず検索したい対象が1件だけ存在する。
select 配列などのコレクション内から条件にマッチするデータを取得する。
explore 蓄積されたデータやコンテンツの中から、傾向や事実を導き出す。
lookup 辞書などで調べるという意味がある。一つの属性から対応する値を求める。

送信系のメソッド名

メソッド名 ニュアンス
send 送信する。広いニュアンスを含んでいるので意味は曖昧。
post 情報を知らせる。Httpのpostと誤解されるのであまり使わない。
deliver メッセージを届ける。メールやメッセージなどを送信する処理に使う。
transport 別の場所へ運ぶ。受け取ったものを、他の処理に移すときに使う?あまり使ったことがない。

変換系のメソッド名

メソッド名 ニュアンス
convert データをいずれかの形式に変換する。元のものを別の形式にしたい場合に使う。
transform 見た目を変化させる。変形させる。可視化されているオブジェクトに使うことが多い。
exchange 別のものと交換する。元のものとは別物になる場合に使う。

停止系のメソッド名

メソッド名 ニュアンス
stop 状態や処理を停止させる。途中再開が出来ない場合に使う。
break 稼働中の処理を一時停止させる。その後再開可能な状態である場合に使う。
halt 状態を一時的に停止させる。処理そのものではなく状態を停止させる場合に使う。再開可能。
cancel 実行中の処理を完了前に終了させる。その後の動作を正常に継続させる場合に使う。
invalidate 状態を更新して、使用できない状態にする。

他にもたくさんある

探してみると色々ありましたね。まだまだ他にも悩みがちなパターンはあると思います。今後もメソッド名で悩んだらシソーラス類語辞典に頼ろう。