IIJでは広報誌「IIJ.news」を隔月で発行しています。本blogエントリは、IIJ.news連載コラム「インターネット・トリビア」を転載したものです。IIJ.newsはご希望者へ郵送でお送りしています。また、IIJ WebではPDF版をご覧頂けます

IIJ.news vol.147 もくじ

iijnews147

  • ぷろろーぐ「わが待ちし秋は来にけり」 鈴木 幸一
  • Topics 「広がるIoT」
    • IoTが創出する新たな利活用
    • IoTセキュリティの脅威
    • IoTに最適なネットワーク
    • IoT技術動向~フォグコンピューティングの紹介
    • 水田IoTを開発する
    • necolico HOME + で"家と会話する"
    • 水産IoTソリューション
    • こんなところにIoT
  • 人と空気とインターネット: ロボット、AIとの共生
  • Technical Now: 遠隔保守サービス GRMS(Global Remote Maintenance Service)
  • インターネット・トリビア: プログラム中の名前の付け方 ※この記事で掲載
  • グローバル・トレンド: ルワンダでの Transform Africa Summit
  • ちょっと氣になる 東京経絡経穴図: 東京の根

それぞれの記事はIIJ.news PDF版でお読み頂けます。

インターネット・トリビア: プログラム中の名前の付け方

コンピュータのプログラムでは、いろいろな場所で「名前」を付けます。数値や文字列を保存しておくための変数や、ひとかたまりの処理をまとめるためのサブルーチンやクラス名、メソッド名など、ちょっとしたプログラムを作るだけでも、いくつも名前を考えなければなりません。

かつて、コンピュータが非力だったころは、名前の付け方にも制限がありました。初期のパソコンでは、アルファベットと数字一~二文字だけでプログラム中の全ての変数に名前を付けなければならず、大変苦労しました。大型コンピュータでも柔軟性はそれほど高くなく、大規模なプロジェクトではサブルーチン名に連番を振り、別途用意した台帳で何番がどのような処理かを管理することもあったそうです。

最近ではコンピュータの性能も向上し、プログラム中の名前の付け方はとても柔軟になりました。現在は、名前を短くするよりも、プログラムのなかでそれがどんな目的のものか、ひと目でわかるような名前を付けるべきだと言われています。

ところで、プログラミング言語の多くはアルファベットと数字・記号を使い、英語風の表記で記述します。なかには変数名やクラス名に日本語を使えるプログラミング言語もありますが、積極的に日本語の名前を使うプロジェクトは少ないでしょう。英語風の名前を付ける際に気になるのが、単語の区切りをどのように表現するかということです。

例えば、「契約の開始日」を格納するための変数に名前を付ける際は、「どんな目的かひと目でわかる」ように、目的を表す単語をそのまま変数名にしてしまうのが得策です。そこで、契約・開始・日付をそれぞれ英単語に置き換えると contract・start・date となり、これを変数名にします。多くのプログラミング言語では、空白文字は命令や変数の区切りに使われるため、変数名に空白を含めることはできません。よって、三つの単語をつなげてひとつながりの文字列にするわけですが、単に contractstartdate としたのでは見にくく、いかにも間違えそうです。これを見やすく記述する方法として、いくつかの流儀が生まれました。

スネークケース(snake case)は、複数の単語をアンダースコア“ _ ”でつなぐ流儀です。先ほどの例に当てはめると、contract_start_date となります。単語が“ _ ”でつなげられた形がヘビ(snake)に見えるというのが命名の由来とされています。単語のあいだの空白が“ _ ”に置き換わっただけなので、わかりやすい反面、単語数が多くなると、どんどんアンダースコアが増えて、冗長な印象を与えがちです。

それに対して、アルファベットの大文字と小文字をうまく使ったのが、キャメルケース(camel case)です。単語の頭文字を大文字で記述し、他は小文字にすることで、区切りを表します。キャメルケースには、先頭の単語の頭文字だけを小文字にするローワーキャメルケース(lower camel case)と、先頭を含めて全て大文字にするアッパーキャメルケース(upper camel case)という二つの流儀があります。先ほどの例をローワーキャメルケースで記述すると contractStartDate となり、アッパーキャメルケースだと ContractStartDate となります。この流儀を「キャメル」ケースと呼ぶのは、所々に混じった大文字がラクダ(camel)のコブに見えるからだそうです。大文字と小文字がミックスされているので、ミックスドケース(mixed case)と呼ばれることもあります。

プログラミング言語によっては、特定の流儀を推奨している場合もありますが、大抵はどの流儀でもプログラムとして成立します。そのため、同じ言語を使っていても、プロジェクトによって名前の付け方が異なることもあります。「美しい」プログラムを書くために、プログラマはこんなところにも気をつかっているのです。