Home > あいそるニュース > システム開発とネーミング
システム開発とネーミング
2008-12-11 06:56
システム開発という仕事をしていると、何かに名前をつけなければならない事が多々あります。
何事も名前をつけるという行為は難しく悩ましいものです。
今回はシステム開発に纏わる「命名」という行為に関して少しお話したいと思います。
システム名
大規模なシステムではそのシステム自体に名前をつけることがよくあります。
「原価管理システム」とか「業務管理システム」というのではなく
アメリカ人やイタリア人のような名前のついたシステムの開発に携わったことは何度かあります。
ジャストシステムの製品では「一太郎」とか「花子」等あえて日本人の名前を採用していたりするのは、日本企業ならではのこだわりが感じられ結構好きです。
ちなみに難易度が高い名前は、そのシステムの目的や理想のような英単語の頭文字をつなげて、最もらしい名前にすることだと思います。
これらの類では個人的にJSON(ジェイソン、JavaScript Object Notation)というデータフォーマットの名前が好きです。
開発しているシステムに名前をつけるということはいくつか利点があります。 例えば、「ディック」と命名されたシステムがあったとしたら「XXXシステム」とわざわざ呼ぶよりも「ディック」の方が会話がスムーズになりますし、何よりシステムに対して開発者の深い愛着が生まれます。
コードネーム
開発中の製品には名前とは別にコードネームが付いたりします。元々コードネームとは開発中の製品の機密保持が目的だったようですが、近年ではあえて一般に公開されることも多く、システムのバージョンを表す別名という意味合いが強くなってきています。
コードネームに限った事ではありませんが、一定のルールに則ってつけられる名前があります。コードネームで私が好きなのは2つあります。
一つはLinuxのディストリビューションの一つDebian GNU/Linuxのコードネームです。 Debianのコードネームは、下表の通り映画の「トイ・ストーリー」のキャラクタとなっています。woodyやsargeはよく利用しました。
| バージョン | コードネーム | 説明 |
|---|---|---|
| 1.1 | buzz | バズ・ライトイヤー。主人公の宇宙飛行士。 |
| 1.2 | rex | レックス |
| 1.3 | bo | ボー・ピープ |
| 2.0 | hamm | ハム |
| 2.1 | slink | スリンキードッグ |
| 2.2 | potato | ミスターポテトヘッド |
| 3.0 | woody | ウッディ |
| 3.1 | sarge | 軍曹 |
| 4.0 | etch | エッチ・ア・スケッチ |
もう一つ好きなのはJava開発者なら身近なEclipseのコードネームです。Eclipseのコードネームは木星の衛星の名前からつけられています。木星の衛星というチョイスはかなりナイスです。
| バージョン | コードネーム | 説明 |
|---|---|---|
| 3.2 | Callisto | カリスト |
| 3.3 | Europa | エウロパ |
| 3.4 | Ganymede | ガニメデ |
ちなみにEclipseはもともとはIBMが開発した製品がベースとなっています(現在はオープンソースです)。
有名な話ですがEclipse(日食)というネーミングは、IBMがライバルのSun(太陽)との対立を表しているといわれていますが、
当然IBMは公式には否定しているようです。
ホスト名
私は社内にある数十台のサーバの面倒を見ていますが、以前は新しいサーバを立ち上げる際のホスト名の命名に悩みました。 例えば新しくWindowsPCを購入した際に、初期設定で「コンピュータ名」を何にしようか悩む方もいらっしゃると思います。しかしPCは後から簡単に変えられますが、サーバのホスト名の変更は、PCほど容易には出来ません。
一般的に多数のサーバのホスト名の命名には選択肢が豊富なシリーズものが好まれ、例えば「太陽系の惑星」、「星座」、「動物名」、「ギリシャ神話の神」等はサーバ管理者の間ではよく使われています。
まだ私がサーバ管理者になりたての頃に、これらサーバのホスト名の命名で失敗したことがあります。 ある大規模プロジェクトで開発サーバを何台も構築する必要が発生した際に、 理由は忘れましたが何故か「北斗の拳」のキャラクターから名前を拝借したことがありました(多分疲れていたのです)。 かなり前なので、全てを思い出せませんが以下のような感じだったと思います。
・raou(ラオウ) ・kokuou(黒王号) ・kaiou(カイオウ) ・ken(ケンシロウ) ・yuria(ユリア) ・jagi(ジャギ) ←ジャギと命名されたサーバはかなりスペックが低い
今思うとかなり痛々しい名前でしたが、当時は名前を考える時間も勿体無いくらい忙しかったわけです。
幸い、開発プロジェクトが終了したらこれらのサーバも別の開発サーバに転用されていった為、 再インストールでホスト名も消えていったのですが、諸事情により「kokuou」サーバだけは ついこの間まで弊社の中で現役で稼動しておりました。
最近は社内のサーバのホスト名は、それなりの命名規則に則ってつけていたのですが この「kokuou」だけは数年間もずっとこの規則から外れたサーバとしてがんばっていました。
この「kukuou」サーバにログインする度に、「ああ、やっぱり名前は慎重に考えないとイカン」と身に染みていました。。。
開発資源のネーミング
システム開発者が日常的に悩むのは、設計時のデータベースの「テーブル名」や「フィールド名」、コーディング時の「変数名」「メソッド名」「クラス名」等の命名でしょう。
「ああー、こんなクラス名をどうするかで悩んでいる暇ねーのに!」という思いは誰もが経験した事があると思います。
これらの命名は英語にするか日本語にするかという選択や、言語によっても文化が異なり意外と奥深い話題です。
また大規模システム開発ではこれらは命名規約によって左右されますので、その規約を作る人の手腕によって大きく左右されます。(テーブル名やクラス名がID形式の命名規約は最悪です。)
この辺の話は書き出すとまた長くなってしまうので、また別の機会に続きを書きたいと思います。
Posted by T.S
