概要
Qiitなどに掲載するサンプルコードのpackage名はなにがよいかという小ネタ。
例示用ドメインを使うのが良さそうです。
Javaのpackage命名方法
すっかりおなじみなので、わざわざ言うまでもないかも知れませんが一応。
Javaのpackage名は、FQCNの重複を避けるためドメイン名を逆順にしたものを先頭に付与するのが慣例となっています。
The Java Language Specificationでは、「Example 6.1-1. Unique Package Names」として以下が挙げられています1。
com.nighthacks.java.jag.scrabble
org.openjdk.tools.compiler
net.jcip.annotations
edu.cmu.cs.bovik.cheese
gov.whitehouse.socks.mousefinder
サンプルコードのpackage名
ドメイン名ベースの命名はちょっと大げさ
とはいえ、サンプルコードに上記のルールを適用するのは、ちょっと大げさな気がします。
サンプルコードのpackage名の要件について簡単に纏めてみました。
- FQCNの重複を気にする必要が無い
- サンプルなので簡潔に書きたい
- サンプルであることを明確にしたい
- そもそも、自分専用のドメイン名を持っていない
- かといって、余所のドメイン名を勝手に使うのも気が引ける
予約済みドメインを流用した命名ですっきり
そこで、予約済みドメインを流用することを思いつきました。
予約済みドメインはIANAで管理されており2、用途に沿ってドキュメントなどで自由に使うことができます。
予約済みのトップレベルドメイン(TLD)は4つあります。
予約済みTLD | 用途 |
---|---|
.test | テスト用のドメイン |
.example | 例示用のドメイン |
.localhost | ループバックアドレス用のドメイン |
.invalid | 無効であることを示すためのドメイン |
exampleやinvalidは、サンプルコードのpackage名に使うのにも丁度よいのではないでしょうか。
package example
public class SampleClass {
// ...
}
おわりに
これまでは、com.example
3をpackage名に使ってましたが、これからはexample
でいこうと思います。4文字も減らせます。