#99 Article 1169 Posted at 2000/03/13 09:24:08 by りんみ (MAP3262) [PACKAGE]
Subject: Java のパッケージ名について
★概要
今、Java によるプログラムを作っています。プログラムの名前は、AlphaSilk
といいます。Java は言語仕様にパッケージという概念、および仕組みがあり
ます。そこで、僕が作ったプログラムに net.mapletown.AlphaSilk という
パッケージ名をつけたいと思っています。
といっても、勝手に名前を使うわけにもいかないので、ここで Java のパッ
ケージ名について提案をしてみます。
★パッケージ名とは?
パッケージは、クラス同士のゆるやかな結びつき... だそうです。
☆一意性
ご存じのように、Java はオブジェクト指向言語です。そして、クラス名は
ファイル名に、パッケージ名は階層ディレクトリ名にマッピングされます。
異なる会社や団体が、別々のプログラムに同じパッケージ名を使ってしまっ
たとき、問題が起きることが予想されます。
パッケージ名は、世界中で唯一の(ユニークな)ものをつけなければいけない
そうです。
☆ドメイン名
それならば、インターネットドメイン名を使ってしまおう... というような
ことが Java 言語仕様に書いてあります。これなら一意ですから。
(注意) 「サブドメインが実在する必要はない」そうです。英語なのでよく
分からなかったのですけど...
☆参考文献
パッケージ名登録/利用サービスについて
http://www.java-conf.gr.jp/wg_bof/package/about.html
Java Language Specification
http://java.sun.com/aboutJava/communityprocess/maintenance/JLS/
★なぜ net.mapletown なのか?
☆かわいいから(笑)
知り合ったひとに、ここのメイルアドレス(mapletown.or.jp)を教えてあげ
ると「かわいいドメイン名ですね」といった返事が返ってくることがありま
す。なので、僕は *.mapletown のパッケージ名を使いたいのです。東急
ケーブルテレビジョンとかでなくって。
- すみません。メイルの課金払ってないです、ここのとこ。振込先は
Mick'n さんのとこでいいんですか?
☆ディレクトリ階層
jp.or.mapletown でないのは、ただ単にディレクトリ階層をひとつでも短く
したかったからです。本当は、(一応)日本人なので JPNIC ドメインを選び
たいです。
(注意) 僕は mapletown.net の会員ではありません(汗)
★名前空間
パッケージ名のパターンをいくつか考えてみました。
☆トップレベル - *.mapletown.AlphaSilk
net.mapletown または、jp.or.mapletown では他に AlphaSilk というプロ
グラムを作ることがない、という前提がある場合に可能です。
具体的には、
・商標登録制度のように他者にこの名前を使わせない
(Note) JPNIC は、ドメイン名と商標名とのリンクはしたくなさそうです。
・Blackdown.org などのようにグループで開発している
場合などが考えられます。この方式の長所は、本家版や元祖版などの亜種が
存在しづらいことです。したがって、ユーザの皆さまにとって、どこを見て
いればよいかが明確です。
ユーザの皆さまには、あまり負担をかけたり、混乱を招きたくはありません。
特に、AlphaSilk はコンピュータの専門家だけを対象にしているわけじゃな
いですから。
☆ハンドル - net.mapletown.linmi.AlphaSilk
この階層以下では、名前が衝突する心配がないので、まだ正式公開していな
いライブラリとかにはいいかも。
☆ID - jp.or.mapletown.map3262.AlphaSilk
net.mapletown では、ログイン名に数字(ID)を使っていないようなので、こ
れは jp.or.mapletown での管理に向いています。個人的には、ID よりハン
ドルの方が好きです。
また、パッケージ名自体が長いので、ユーザの皆さまが大変かも。
(Note) 例えばアプレットの場合、HTML にパッケージ名を記述する必要があ
ります。
★結論
*.mapletown のパッケージ名を使わせていただけますか? 以下のパターンでは、
左側にあるものの方が優先度が高い(使いたい)ものです。
□net □jp.or □拒否 - どれも使えない
□トップレベル □ハンドル □ID
(Note) よもや、僕と同じハンドルのひとはいないだろう...(汗)
□組み合わせ(ハイブリッド)可 - ローカルなライブラリにはハンドルを使
う、など。
□格上げ可 - 状況に応じて、トップレベルに格上げ可能
(注意) といっても、やたらとパッケージ名を変更するのは考えものです。
Swing はごたごたしていましたからねぇ。ドキュメントに明示する
という手もありますが...
「仕様は予告なく変更される可能性があります」... (笑)
ということで、管理者の方の判断を仰ぎます。
MAP3262 りんみ