Goで大規模Webアプリケーションを開発するにあたって悩ましいのはディレクトリ構成です。 世の中にはさまざまなプラクティスに溢れているものの、Goはその言語特性から他言語のプラクティスをそのまま適用しづらい面があります。 本記事では一般的なディレクトリ構成のパターンをまとめつつ、その上でFile Nestingを駆使したGoプロジェクトのディレクトリ構成を提案していきます。 一般的なディレクトリ構成パターン 技術単位 まず一番よくみるパターンとしてあるのが、技術的な分類ごとに配置する考え方です。 たとえばレイヤードアーキテクチャにおいてレイヤーごとにディレクトリを分ける場合、この構成パターンに基づいていると言えます。 ├ service/ │ ├ order_service.go │ └ purchase_service.go ├ repository/ │ ├ order_reposit