パッケージ名で悩む - golang

2020-06-07

プロジェクト内で、HTTPのユーティリティ関数をまとめるモジュールの命名に悩んでいました。
結果はproject-layoutの構成で、internalの下にhttputilを配置して解決。

悩んでいた時は回答がでず、こちらで聞いてみると、

  • internalを作って、その下は好きにするといい
  • httpextextをつける

というような意見をいただきました。

個人的にはinternalを使うほうが、プロジェクト内ということがわかりやすいと考え、そちらで実装。

最初に考えていた名前は、mypackage/utils
しかし、“Avoid meaningless package names.” (“Bad package names” section). という記載があるので違う気がする。

次は、mypackage/http or mypackage/httputil
これは、“Avoid unnecessary package name collisions.” (“Bad package names” section). にひっかかるので違う気がする。

最後に、mypackage/apphttputilsにしてましたが、どうにも冗長。質問を投げてみて、いただいたinternalの方法に変更。

今思うと、ドキュメントの命名に関する記述は外部に公開するパッケージで、今回悩んでいた命名は内部にとどまるパッケージ名、文脈が違いましたね。

参考

https://blog.golang.org/package-names