directory architecture
- cmd/:アプリケーションのエントリーポイントを含むディレクトリ。
main.go
が配置されます。 - internal/: アプリケーションのコアとなるコードを格納します。このディレクトリは、さらに以下のサブディレクトリに分かれます。
- domain/: エンティティ(ドメインモデル)とビジネスルールを定義します。
- usecase/: アプリケーションのビジネスロジック(ユースケース)を実装します。リポジトリのインターフェースもここに定義されます。
- interface/: 外部とのインターフェース(コントローラー、プレゼンター)を実装します。HTTPリクエストの処理やリポジトリの具体的な実装が含まれます。
- infrastructure/: アプリケーションのインフラストラクチャ層(データベース接続、外部サービスとのインターフェース)を実装します。
- db/migrations/: データベースのスキーマ変更を管理するマイグレーションファイルを格納します。
- Dockerfileとdocker-compose.yml: コンテナ化されたアプリケーションとその依存関係を定義します。
- go.modとgo.sum: 依存するGoモジュールを管理します。