はじめに 現在関わっている新規開発プロジェクトで、新しくgolangを採用することにしました。 その際、アーキテクチャや使用するライブラリなどいろいろ試したり調べたりしたのでサンプルプロジェクト(Github)と一緒に紹介します。 golangのパッケージ構成 golangで開発を行うにあたり、プロジェクトのパッケージ構成を検討しましたが、今の所golangのパッケージ構成はこれ!というものはなく、世の中的にもいろいろと試行錯誤がなされている段階のようです。 今回作るシステムでは、最終的にはある程度の規模になることが予想されるのと、立ち上げ後のメンテナンス性も踏まえ、DDDで紹介されているアーキテクチャを取り入れてみることにしました。 DDDにはいくつかのアーキテクチャがよく登場します。 今回の場合、レイヤードアーキテクチャやヘキサゴナルアーキテクチャでは少し不足で、クリーンアーキテクチャ