プログラミングで変数名や関数名のネーミングに迷ったときに便利なカンニングペーパーまとめ

僕は、プログラムをする上で変数や関数に良い名前を付けるのはとても重要と考えています。

というのも、良い名前を付ければ、それだけでそのコードがしたいことの説明になり、コメントと同等の働きをすることもあるからです。

自分がちゃんとそれをできているのかはさておき、僕は普段から、できれば読みやすくて分かりやすい名前を付けたいと思っています。他の人も読むコードであれば、できればプログラムでよく使われるような単語を利用して書いた方がより分かりやすいです。

ただ、よい名前を考えるのって、ちょっと面倒くさいんですよね。僕はこれまで、英語の辞書を利用して、考えたりしていたのですが、「何か、プログラムでよく使われる単語をまとめたものはないか?」と探したら、ドンピシャのものがいくつかあったので、それらをまとめて以下で紹介します。

photo by Michael Coté

スポンサーリンク
レクタングル(大)広告

codic

codic

codic – デベロッパーのためのネーミング辞書

追記:codicは、バージョンアップされ、現在は日本語を入力すると英語名に変換する機能が追加されました。新しいver3で辞書機能を利用するには無料登録する必要があります。

プログラマーやシステムエンジニアのためのネーミング辞書です。

変数名、関数名はもとより、データベースのカラム名やプログラムのクラス名・メソッド名といったネーミング作業を、手軽に行うための和英辞書といった感じです。

日本語で検索すると、プラグラムなどでよく使われている英単語が以下のようにリストアップされます。(※以下は「取得する」で検索した結果)

「取得する」で検索した結果

単語をクリックすると、詳しいニアンスについて説明するダイアログが出ます。

fetchの解説

例えば、通常何かを取得する関数名などは、get_page_title()みたいに書くことも多いかもしれません。けれど、これだとタイトルを、設定値からとるのか、データベースからとるのか、インターネットから取ってくるのか分かりません。

けれど、ネットを介して取ってくるのであればfetch_page_title()とした方が、「行って取ってくる」というニュアンスがあるので、「ネットを介して取ってくるのだな」ということがわかりやすくなります。加えて、処理コストの高い(時間のかかる)関数ということも何となく伝わるので、誤って乱用してしまうことも防げます。

と、こういったプログラムに利用する英単語を手軽に検索することができる辞書ツールです。今更なのかもしれませんが、僕は今回の調べものをしていて初めて知りました。

ユーザー登録をすれば、単語を追加することもできるので、辞書をどんどんパワーアップさせることもできます。

あと、プログラミングのネーミングに特化した開発者ブログも、とても勉強になります。

codic紹介記事。

関数や変数のネーミングに悩んだら「codic」に日本語名を入力するとある程度解決するかも
プログラミングで関数などのネーミングに頭を悩ませている人は結構おられるかと思います。 僕もその1人で、自分の名付けの何かヒントになれば...

関数名によく使われる英単語(動詞)の意味とニュアンス

関数名によく使われる英単語(動詞)の意味とニュアンス

関数名によく使われる英単語(動詞)の意味とニュアンス | PHP Archive

プログラムで、よく利用される動詞の種類が豊富なリストです。

動詞を見つけるなら、一覧になっているのでcodicで検索するよりも手軽かもしれません。

以下のような、よく利用される単語の、主な用途と細かい意味、ニュアンス、使い分けについてリストアップされています。

  • 追加・作成
  • 保存・出力
  • 読み込み・解析・取得
  • 編集・変更・修正
  • 削除
  • 検索
  • 検査
  • 許可・禁止
  • その他

プログラミングに出る!英単語

C言語編 - プログラミングに出る!英単語

C言語編 – プログラミングに出る!英単語

名詞なども含めて、一般的に関数名などで使われる英単語を百数十個まとめてあるページです。

C言語編と書かれていますが、どのような言語でもよく利用されている単語ばかりなので、ここにある単語さえ押さえておけば、自分以外の人にも理解されやすい名前をつけることができるかもしれません。

 

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

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

プログラミング – うまくメソッド名を付けるための参考情報 – Qiita

メソッド名(関数名)のネーミング向けの単語が揃っています。紹介されているプレフィックス(接頭辞)とサフィックス(接尾辞)がとても参考になります。

Naming -名前付け

Naming -名前付け- - Qiita

Naming -名前付け- – Qiita

メソッドに命名するときに便利な動詞がまとめられています。また、様々な文献から抽出した名前付けに関する情報を雑多についてもまとめられています。

プログラマなのに知らなかったら恥ずかしい英単語集

Rails - プログラマなのに知らなかったら恥ずかしい英単語集 - Qiita

Rails – プログラマなのに知らなかったら恥ずかしい英単語集 – Qiita

プログラムによく利用される、基本的な英単語と意味がリストアップされています。似たような意味を持つ単語がまとめられているので、意味を比較して利用できます。

プログラミングでよく使われそうな英単語

プログラミングでよく使われそうな英単語 - Variety wiki

プログラミングでよく使われそうな英単語 – Variety wiki

こちらは少なめですが、PukiWiki。

クラス名・関数名によく使われる英単語

クラス名・関数名によく使われる英単語 - ある日の日記

クラス名・関数名によく使われる英単語 – ある日の日記

javadocリファレンスをプログラムでテキスト解析した結果から、出現頻度が高い単語が上位からリストアップされています。

僕は、Javaは使ったことがないのですけど、上位の単語は他のプログラムでもよく見かける面々といった感じです。(※予約語とかも含まれています。)ここに出てくる単語を押さえて組み合わせて利用すれば、ある程度名前をつけられそう。

ゲーム向けの翻訳スプレッドシート

Common words translation for games

Common words translation for games

ゲームなどでよく使われる設定のキャプションやメッセージなどの翻訳一覧スプレッドシートです。英語、日本語、ドイツ語、ロシア語、イタリア語、スペイン語、韓国語、中国語、フランス語他などに対応しています。

Weblio辞書

英和辞典・和英辞典 - Weblio辞書

英和辞典・和英辞典 – Weblio辞書

結局、なんだかんだで最後に頼りになるのは、やっぱり辞書だったり。辞書もいろいろあるけど、Weblio辞書が、日本語で検索したとき、最も提案も多く、解説もあるのでネーミングには、使いやすいです。

以前、WEBのテキスト翻訳サービスを比較した時も、Webulioが質&操作性ともよかったです。

「Google」VS「エキサイト」VS「アルコム」VS「weblio」本当に使える翻訳サービスはどれ?検証してみた
翻訳アプリに関する面白い記事がアメーバニュースに載っていました。 「Google」VS「エキサイト」本当に使える翻訳アプリはどっ...

Thesaurus.com(類義語辞書)

Thesaurus.com  Find Synonyms and Antonyms of Words at Thesaurus.com

Thesaurus.com | Find Synonyms and Antonyms of Words at Thesaurus.com

英単語の、類義語を検索することができます。

検索単語との関連性、単語の複雑さ・長さなどからワードを抽出することもできるので、「なるべく短くて関連性の高い類義語を探したい」なんて時にも便利です。(Twitterで教えてもらったので追記)

プログラムネーミング時の語彙力強化に英語の類義語辞典「Thesaurus.com」が便利
先日、プログラミング時のネーミングに便利なページをまとめました。 このときに、Twitterで「Thesaurus.c...

その他

その他ネーミングに役立つ記事やサービスをリストで追加していきます。

まとめ

とこんな感じで、プログラミング単語のカンニングペーパーに便利なページを紹介しました。

いくつか紹介しましたが、これらの中で、気に入ったものを、いくつかブックマークに入れておけば、次からネーミングで迷ったときに、ちょっとした手助けになるのではないかと思います。

Global Language Monitorによると、2014年の1月時点で100万以上の英単語が存在しているそうです。現在でも、だいたい98分に1個のペースで英単語が生まれるそうです。ただ、プログラムは英数字で書くからといって、これらすべてを知る必要はありません。

今回紹介したページにある単語を200個ぐらいを適切に利用すれば、それだけでも結構読みやすいコードになるかと思います。

加えて、プログラム本としては異例のベストセラーである、リーダブルコードを読んでおくとより理解が深まると思います。