0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:GitHub Actions × Dockerで実践するGoプロジェクトの構成について記事としてまとめてみた

Posted at

はじめに

このドキュメントでは、プロジェクトのディレクトリ構成と各ファイル・フォルダの役割について説明します。

個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。

プロジェクトを理解しやすくし、スムーズに開発を進めるためのガイドラインとして活用してください。

書こうと思ったきっかけ

このプロジェクトにはさまざまなディレクトリとファイルが含まれており、それぞれの役割を明確にすることで、新しく参加する開発者やチーム内のメンバーがより簡単にコードベースを理解できるようにするためです。

実際のリポジトリ

ディレクトリ / ファイルの概要

1. CI/CD 関連

.github/workflows/

GitHub Actions の設定ファイルを管理するディレクトリ。CI/CD(継続的インテグレーション・デリバリー)の設定を記述し、テストやデプロイの自動化を行う。

2. 認証・データベース関連

auth/

認証関連のロジックを管理。ユーザーのログイン・ログアウト処理や JWT(JSON Web Token)の管理などが含まれる。

db/

データベースの操作に関する処理を管理。DB接続やクエリ実行のヘルパー関数を実装する。

migrate/

データベースのマイグレーションスクリプトを格納。スキーマの変更や初期データの投入などを行う。

model/

データベースのモデル定義を格納。各テーブルの構造を Go の Struct で定義し、ORM(Object-Relational Mapping)として利用する。

repository/

データベースアクセスのリポジトリパターンを実装。DBとのやり取りを統一し、コードの可読性を向上させる。

3. API・ルーティング関連

handler/

API のエンドポイント処理を実装。各ルートのリクエストを受け取り、データの取得・加工・レスポンスを返す。

router/

ルーティング設定を管理。エンドポイントごとに適切な handler を紐づける。

4. 設定・構成ファイル

.air.toml

air のホットリロード設定ファイル。開発時にコードの変更を検知し、自動でサーバーをリロードするために使用。

.gitignore

Git の無視ファイルリスト。不要なファイル(node_modulesenv ファイル、ログファイルなど)を Git 管理から除外するために使用。

Dockerfile.dev

開発環境用の Dockerfile。開発時に必要な依存関係を含めたコンテナイメージを作成する。

Dockerfile.prod

本番環境用の Dockerfile。軽量でセキュアな本番用コンテナイメージを作成する。

docker-compose.yml

Docker のコンテナ構成を定義するファイル。複数のサービス(アプリ、DB、キャッシュなど)を一括で管理できる。

Makefile

make コマンドを使用してビルド・実行を自動化する設定。make run などのコマンドで簡単に開発環境を構築可能。

5. Go 言語関連

go.mod

Go モジュール管理ファイル。プロジェクトの依存関係を管理し、適切なバージョンのパッケージを使用できるようにする。

go.sum

Go の依存関係をロックするファイル。プロジェクトの再現性を確保するために使用。

server.go

アプリケーションのメインエントリーポイント。サーバーの起動、ルーティングの設定、ミドルウェアの設定などを実装。

6. その他

phpmyadmin/sessions/

phpMyAdmin のセッション管理を行うディレクトリ(詳細不明)。

skill-typing-back/

作成したアプリケーションのディレクトリ。バックエンドのロジックや設定を含む可能性がある。

README.md

プロジェクトの概要、セットアップ手順、使用方法を記載。新しくプロジェクトに参加する開発者向けの情報を提供。

まとめ

このプロジェクトは、Go 言語を使用した Web アプリケーション であり、Docker を活用したコンテナ環境 を構築し、GitHub Actions で CI/CD を実現 する構成になっています。

  • バックエンド開発auth/, handler/, repository/, server.go
  • データベース関連db/, migrate/, model/
  • 設定・CI/CD.github/workflows/, .air.toml, Dockerfile.prod, docker-compose.yml
  • 開発環境Dockerfile.dev, Makefile

この構成を理解することで、プロジェクトに貢献しやすくなります。

本ドキュメントを参考にしながら、各ファイルの役割を把握し、効率的に開発を進めてください。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?