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?

golang-standasrds/project-layout を理解する

Posted at

golang-standards/project-layout

golang-standards/project-layout とは Go プロジェクトの基本的なディレクトリ構成を定義したものです。
Go 公式で定義しているものではありません。

リポジトリの解説

ディレクトリの説明はルートの README に記載があります。
README は多数の言語に対応しており、日本語も対応しているようです。

日本語の README:

また、各ディレクトリにも README が存在しており、例が記載されていることもあります。

各ディレクトリについて

/api

OpenAPI 定義などを置くディレクトリ。

/assets

画像などを置くディレクトリ。

/cmd

Go における main 関数を置くディレクトリ。
このディレクトリに置いた main 関数から /internal/pkg にアクセスします。

/configs

設定を管理するディレクトリ。

/deployments

デプロイメント設定を置くディレクトリ。

/docs

設計などドキュメントを置くディレクトリ。

/examples

ライブラリとしてリポジトリを公開した際にライブラリの利用例を置いておくようです。

/githooks

Git のフックを置くディレクトリ。

/init

システム init を置くディレクトリ。

/internal

Go 1.4 から言語仕様上、特別なパッケージなようです。

/pkg

ライブラリコードを置くディレクトリ。

/scripts

スクリプトを置くディレクトリ。
プロジェクトルートに存在する Makefile からこのディレクトリに置いてあるスクリプトを呼び出すことで Makefile をシンプルにすることができます。

/test

テストコードやテストに使用するデータを置くディレクトリ。

/third_party

サードパーティのコードを置くディレクトリ。

/tools

Go プロジェクトをサポートするツールを置くディレクトリ。

/vendor

依存関係を管理するディレクトリ。
go mod vendor を実行するとこのディレクトリが作成されます。

/web

Web アプリケーションに関するコードを置くディレクトリ。

/website

Web サイトのデータを置くディレクトリ。

0
0
0

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?