03. Srcフォルダ
Src/
(またはsrc/
)フォルダは、このプロジェクトで開発される全てのアプリケーションソースコードを格納する、中心的な場所です。
なぜ Src
フォルダに置くのか?
ソースコードをルートディレクトリに直接置かず、Src/
フォルダにまとめることには、以下のようなメリットがあります。
- 関心の分離: ドキュメント(Docs/
)、CI設定(.github/
)、ソースコード(Src/
)が明確に分離され、リポジトリの見通しが良くなります。
- ビルドの安定化: ビルドスクリプトやCI/CDパイプラインが、常にSrc/
を起点として動作するため、設定がシンプルかつ安定します。
- クリーンなルート: リポジトリのルートディレクトリが、設定ファイルやREADMEなど、プロジェクトの入り口となる情報だけで構成され、クリーンに保たれます。
構成の基本原則
Src/
フォルダ内の構成は、開発するアプリケーションのアーキテクチャや種類によって異なりますが、以下の原則に従うことを推奨します。
- ソリューション/ワークスペースを配置:
- 複数のプロジェクトで構成される場合、
Src/
フォルダ直下にVisual Studioのソリューションファイル (.sln
) や、VSCodeのワークスペースファイル (.code-workspace
) を配置します。
- 複数のプロジェクトで構成される場合、
- プロジェクトごとにフォルダを分割:
- 各プロジェクト(ライブラリ、Web API、UI層など)は、それぞれ専用のフォルダに格納します。
- 命名規則の統一:
- プロジェクト名やフォルダ名は、組織やチームの命名規則に従います。(例:
BitzLabs.ProjectName.Core
,BitzLabs.ProjectName.Api
)
- プロジェクト名やフォルダ名は、組織やチームの命名規則に従います。(例:
構成パターン例
以下に、典型的なプロジェクトの種類ごとの構成パターン例を示します。
例1: Web API + クラスライブラリ (C# .NET)
Src/
├── BitzLabs.MyApi.sln
│
├── MyApi.Api/
│ ├── Controllers/
│ ├── Program.cs
│ └── MyApi.Api.csproj
│
├── MyApi.Application/
│ ├── Services/
│ └── MyApi.Application.csproj
│
└── MyApi.Domain/
├── Entities/
└── MyApi.Domain.csproj
例2: Webフロントエンド (Node.js/TypeScript)
Src/
├── app/ # React, Vue, Svelteなどのメインコード
│ ├── components/
│ ├── pages/ or routes/
│ └── main.ts
│
├── lib/ # 共通のライブラリやユーティリティ
│ └── ...
│
├── public/ # 画像やフォントなどの静的アセット
│ └── favicon.ico
│
├── package.json
└── tsconfig.json
例3: ライブラリ開発
Src/
├── BitzLabs.MyLibrary/ # ライブラリ本体のプロジェクト
│ ├── BitzLabs.MyLibrary.csproj
│ └── ...
│
├── BitzLabs.MyLibrary.Tests/ # (Testsフォルダに置く場合もある)
│ ├── BitzLabs.MyLibrary.Tests.csproj
│ └── ...
│
└── samples/ # ライブラリの使い方を示すサンプルプロジェクト
└── SampleApp/
└── SampleApp.csproj
Note
上記はあくまで一般的な例です。プロジェクトのアーキテクチャ(例: クリーンアーキテクチャ、レイヤードアーキテクチャなど)に合わせて、最適なフォルダ構成を選択してください。 重要なのは、一貫したルールに基づいて構成されていることです。