プログラミングは、小説などと同様に登場人物があり、名前を決める必要がでてきます。
そこで、どんな名前が良いのか、少しずつ考え、学んでいきたいと思います。
名前を決めるのに、いつもかなり時間をかけちゃうんですよね。
この時間を減らして、ちょっとでも早くなりたい!
目次
名前の情報量
名前の付け方によって、情報量に差が出てきます。
例えば、小説内の登場人物として、人物像が記載されていたとします。
名前:山田太郎
年齢:41歳
身長:184cm
出身地:福岡
仕事:会社経営
趣味:写真撮影
見た目:赤いTシャツ、緑のズボン
性格:温和
登場時にはある程度の会話の中で情報が出てきて、人物紹介がなされるかと思います。
ただ、それ以降も常に同じ情報が出てくるかというと、そうではない場合がほとんどです。
より抽象的な表現で「山田太郎」さんが表現されているのではないでしょうか?
- 彼
- 福岡から来た人
- 経営者
- 写真撮ってた人
- 赤のシャツ着ている人
- 優しい人
- やまちゃん
状況、場面、相手などによって「山田太郎」さんを表現する単語は省略されたり、情報の抜粋が行われます。
つまり、同じ人物を指している単語でも、情報量に差がでてきます。
情報量に差が出てきたとき、より万人に伝わる呼び方は何なのでしょうか?
コードの読みやすさを解説した有名な書籍である「リーダブルコード」内では次の6要素が重要だと記されています。
- 明確な単語を選ぶ
- 汎用的な名前を避ける
- 抽象的な名前よりも具体的な名前を使う
- 接尾辞や接頭辞を使って名前に情報を追加する
- 名前の長さを決める
- 名前のフォーマットで情報を伝える
明確な単語を選ぶ
プログラミングの名前は英語であることがほとんどです。ただ、我々日本人は英語で明確な単語をつけようと言われても、知らない方が多いのではないでしょうか?
「Get」は明確ではなく、「Fetch」「Download」「Retrieve」が明確
「Size」は明確ではなく、「Height」「Bytes」「Length」が明確
明確な単語と言われても、全然わからない。。。
そんなときに便利なサイトを紹介します。
こちらのサイトは、まさに名前付けに困っている方向けのサイトになります。
英語の名前にしたい日本語を入力すると、適切な英語に変換してくれます。
他には、こちらのようなシソーラスもおすすめです。英語の類義語検索ができます。
汎用的な名前を避ける
汎用的な名前とは、冒頭で紹介した「彼」という表現などですね。
「彼」と言われたときに当てはまる人の数が膨大になります。名前を言われたときに当てはまる人物が少なくなるような名前をつけましょう。
例えば、次のような単語が汎用的な名前で、避けたほうが良いと言われるものとなります。
- tmp
- return_value (retval)
抽象的な名前よりも具体的な名前を使う
具体的な名前とは、一意に特定可能な名前をつけるということです。
前提知識や状況による部分も大きくあります。
「福岡県内の小学校」で「福岡に住んでいる人〜?」と呼びかけた場合、多くの方が手を挙げることでしょう。
しかし
「スーツ着用必須」の会場で「赤いシャツを着ている人〜?」と呼びかけた場合、手を上げるのは「山田太郎」さんだけでしょう。
プログラムの場合は読み手が一意に想像できる名前を使用するべきです。
誰が読んだときに、この読み方ならわかるのかを意識して名前をつけるようにしましょう。
接尾辞や接頭辞を使って名前に情報を追加する
値の単位や属性などを追加しましょう。
「身長」=「身長(cm)」?「身長(m)」?「身長(feet)」?
「山田さん」=「山田さん(スーツを着ている)」?「山田さん(15歳)」?「山田さん(赤緑の人)」?
具体的な名前の時と同様に、読み手が一意に特定可能な情報をつけてあげましょう。
名前の長さを決める
その名前が使われる範囲を決めましょう。
名前が使われる範囲が短く、すぐに使わなくなるのであれば、その区間だけで分かる短い名前で良いです。
最初から最後まで使われるような名前であれば、多少長い名前になったとしても、明確にそれだけを表せるような名前にしましょう。
名前のフォーマットで情報を伝える
ルールを決めることで、名前を短くできます。
「山田太郎」さんのプロフィールを以下のように単位不要で、アルファベットで表現しましょうと全員で取り決めたとすると、文字数が少なく、同じ情報を表現可能になります。
名前:山田太郎
年齢:41歳 → 41
身長:184cm → 184
出身地:福岡 → F
仕事:会社経営 → KA
趣味:写真撮影 → SS
見た目:赤いTシャツ、緑のズボン → 赤緑
性格:温和 → O
プログラミングでよくあるフォーマットとしては、頭文字のアルファベットが〇〇であれば誰でも使ってよくて、全て大文字であれば定数などがあります。
まとめ
登場人物の名前の決め方について書いてきました。
全ての章で共通していることは、読み手が一意に特定可能な名前をつけましょうということです。
これを根底にしっかりと意識しておけば、わかり易い名前になると思いますので、皆さんも是非トライしてみてください。