Go 開発では、「プロジェクト構成」が品質・保守性・開発速度を大きく左右します。
特にAPI開発やSaaS運用では、適切なディレクトリ設計が非常に重要です。
本記事では、Goのプロジェクト構成について「基本・ディレクトリ分割・実務ベストプラクティス」まで初心者向けに解説します。
なぜプロジェクト構成が重要なのか?
例えば👇
- コードが見やすい
- 保守しやすい
- チーム開発しやすい
- テストしやすい
👉 実務では超重要
基本構成例
my-project/
├── cmd/
├── internal/
├── pkg/
├── configs/
├── api/
├── web/
├── scripts/
├── docs/
├── go.mod
└── README.md
cmd/
エントリーポイント
例👇
cmd/api/main.go
internal/
内部ロジック
👉 外部公開しない
pkg/
共通ライブラリ
👉 再利用可能コード
configs/
設定ファイル
例👇
config.yaml
api/
API定義
web/
HTML・静的ファイル
handler / service / repository構成
handler
↓
service
↓
repository
👉 レイヤー分離
実務でよくある構成
internal/
├── handler/
├── service/
├── repository/
├── middleware/
├── model/
└── config/
DI(依存性注入)
Dependency Injection
👉 テストしやすくなる
実務で重要なポイント
✔ Fat Controller禁止
👉 handlerを薄く
✔ Business Logic分離
👉 service層へ
✔ DB処理分離
👉 repository化
Docker対応
Docker
FROM golang:1.24
CI/CD統合
GitHub Actions
go test ./...
実務での応用
- API開発
- SaaS構築
- マイクロサービス
- 管理画面開発
よくある失敗
❌ main.go肥大化
❌ handlerにロジック集中
❌ ディレクトリ無秩序
ベストプラクティス
- Layer分離
- internal活用
- DI導入
- Clean Architecture意識
💡 結論
👉
「プロジェクト構成=システムの寿命」


コメント