先月開催のJJUG CCC 2017 Springの「JavaFXでデスクトップガジェット風プログラムを作る」セッションで、透明ウィンドウ化とそれに伴うウィンドウの移動・大きさ変更・閉じる・などの振る舞いの実装を紹介しました。
複数のガジェット風プログラムを作るとき、こうした振る舞いを都度コピーペーストするのもいただけないので、別クラスに切り出して利用するようにしました。
このパッケージ名をどうしようかな? と考えていた時に見つけたブログが次でした。
Util Packages Are Evil : Adam Bien's Weblog
commonは以前から避けるべき命名と認識していましたが、base、modelは使ったことがあるのでちょっとグサッと・・・
ここでの根拠は「un-cohesive」(凝集度の低下)をもたらすということです。比喩で「Kitchen-sink」に至ると書かれていました。
パッケージ名はクラス名と違って、いくつものクラスやサブパッケージを束ねるので、割と広い意味を持つ命名をしてしまいますが、抽象的すぎると凝集度が下がって、最後は何でも入れてしまう(Kitchen-sink)ことになりかねないということですね。
Java(に限らずですが)で、パッケージ名を付けるときの参考に。