【実務向け】Goプロジェクト構成の設計方法|ディレクトリ設計完全ガイド

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意識

💡 結論

👉
「プロジェクト構成=システムの寿命」

コメント

タイトルとURLをコピーしました