良いコ-ドへの道―普通のプログラマのためのステップアップガイド

第2回 名前付け重要。または,良いコードは良い名前から生まれるんです。―その3 良いメソッド名

この記事を読むのに必要な時間:およそ 1 分

良いメソッド名

良いメソッド名は,名前から機能が想像できます。メソッドは処理を行うので,メソッド名は「動詞」「目的語」になっていることが多いです。よく使用されるメソッド名には表2のようなものがあります。

●表2 Javaでよく使用されるメソッド名

メソッドの役割メソッド名
値の取得に関するメソッドgetXXX
値のセットに関するメソッドsetXXX
生成に関するメソッドcreate,build,make,genarate
初期化に関するメソッドinitialize,setupXXX
破棄に関するメソッドdestroy,dispose
状態の確認に関するメソッドcontains,exists

インスタンスメソッドは,「dateFormat.parse」のようにオブジェクト名と組み合わせて呼び出されるので,組み合わされたときに重複なく意味が通る名前にします。クラスメソッドとクラス名も同様です。

// ×parseDateStringだとクラス名のDateFormatと
//   dateが重複するため,若干冗長
DateFormat dateFormat = new DateFormat("yyyy-MM-dd");
Date startDate = dateFormat.parseDateString("2008-04-01");

// ○クラス名のDateFormatとメソッド名parseの
//   組み合わせで,何を行うのかは十分理解できる
DateFormat dateFormat = new DateFormat("yyyy-MM-dd");
Date startDate = dateFormat.parse("2008-04-01");

よく使用されるメソッドは簡潔で短い名前が良いという意見があります注4)。たとえば,Javaのjava.utilVectorクラスで要素を取得するメソッド名は「elementAt」でしたが,java.util.Listクラスではより簡潔な「get」に変更されています注5)。

注4)
特に軽量言語ではその文化が強いです。
注5)
Bliki「ヒューメイン・インタフェース」  URL:http://capsctrl.que.jp/kdmsnr/wiki/bliki/?HumaneInterface

Column 英語が苦手な方へ

筆者も含めて,英語が苦手な方は名前付けの際に苦労されていることでしょう。以下,筆者が名前付けの際に気をつけている点を紹介します。

スペルミスに注意する

日本人だけが間違って使うことが多い単語として「regist」があるそうです注a)。実際には「regist」という単語は存在せず,正しくは「register」になります。

筆者も含めて英語が苦手な方は,単純なスペルミスやオレオレ単語を作らないように,まずは気をつけましょう。英語が苦手な場合ミスっても気づきにくいところがあるのですが,英語が得意な人からするとスペルミスはかなり気になるそうです。辞書サイトなどを活用して正しい英語を使いましょう。得意な人は,ミスに気づいたらやんわりと教えてあげてください。

直訳にご注意(文脈に応じた単語を選択する)

エキサイト翻訳などで日本語を翻訳すると,直訳されてまったく意味が異なる英単語が返されることがあります。直訳英語をそのまま使うのは,思いがけず恥ずかしい意味の単語を使ってしまったりしてたいへん危険です。その文脈や対象領域にあった単語かどうかを見極めてから使いましょう。

自信がないときは……

次の方法で正しいかどうかを確認しましょう。

  • 英語が得意な人に相談する(レビューしてもらう)
  • Googleで検索して,検索結果の件数をチェックする(正しい単語なら検索結果が多いはず)
  • Googleソースコード検索で,ほかの開発プロジェクトで使用されている名前かどうかを確認する
  • SPACE ALCで検索する。たくさんの例文が一緒に表示されるため,どのような文脈で使用すればよいかがわかりやすい
注a)
秋元@サイボウズラボ・プログラマー・ブログregistという英語は無い

著者プロフィール

縣俊貴(あがたとしたか)

学生時代にMSXで制限された環境でのプログラミングの楽しさを学ぶ。以来,オープンソースのWiki実装「MobWiki」の開発や受託開発などを経て,現在はプロジェクト管理ツール「Backlog」,ドローツール「Cacoo」など,コラボレーション型のWebサービスの企画と製品開発を行う。また,Webアプリケーションフレームワーク「Cubby」のコミッタを務める。福岡在住。株式会社ヌーラボ所属。

ブログ :http://d.hatena.ne.jp/agt

Twitter:@agata

コメント

コメントの記入