これは、Go歴1年未満の初心者の戯言です。はてブなんかで指摘していただけると嬉しいです。
Goでアプリケーションを書くときに、クリーンアーキテクチャに則って実装するのは厳しいのではないかということをよく考えている。というのも、Goはディレクトリごとにパッケージが分かれる。なので、循環importができない。なので、循環しないように実装してくとどうしてもディレクトリが増えていってしまう。さらに、環境ごとにconfig
を設定したりログ変数をグローバル変数に置くということをよくやるのだが、パッケージが分かれるとそれぞれに定義する必要がある。
なので、結局すべて同じパッケージで管理する方法を取ってしまっている。しかし、GoのプロジェクトレイアウトやGoで構築するクリーンアーキテクチャ実装例を見るとディレクトリを分けていてベストプラクティスがわからない…
ログとかconfig
はcontextに入れてしまえという主張が一番適切かもしれない