さまざまなフレームワークまたはエンジンをダウンロードし、巨大な開発チームがフォルダーレイアウトをどのように処理したかを確認することをお勧めします。
ファイルを整理する方法は非常に多くあるため、いずれかを選択して、特定のプロジェクトでファイルに固執することをお勧めします。バグを回避し、不要な時間をなくすために、完了するまでまたは修正するまで、特定の規則に固執します。
Webプロジェクト用のLaravel、Symphony、またはCodeigniterフレームワークをダウンロードして、インスタントフォルダーレイアウトを機能させることができます。
だから、私はすべての開発に共通のフォルダーレイアウトを伝えようとします:
MVC(Model View Controller)は、組織の良いパラダイムを提供します。
ルートソースコードはsrc(C ++)またはapp(Web開発)
明確にグループ化するクラスの明確な目的を持っていないファイル構造は、混乱を引き起こします。コードを整理するだけでなく、オートローダー、クラスファクトリ、ローカルストレージ、リモートストレージ、ネームスペースをラップできます。
このフォルダー構造は、Laravel Frameworkから派生して簡素化されています。この投稿での私の好みは複数の命名法ですが、プロジェクトでは単数形の単語を使用しています。
src / storage(models / file-storage / api / mysql / sql-lite / memcached / redisの実装)
src / repositories(ストレージロジック、共通インターフェイス、および戻り結果の規則を備えた「ストレージ実装」のラッパー。)
src / services | ロジック| エンティティ (アプリビジネスロジック)
src / controllers(Web開発でサーバーリクエストをサービスにルーティングするために使用)
src / modules | システム(フレームワークの一般的な機能を拡張するモジュラーシステム。サービスはモジュールを使用できますが、その逆はできません)
src / helpers(文字列操作などのヘルパークラスまたはラッパークラス。多くの場合、これはサードパーティのlibs | vendorにあります)
src / types(名前付き列挙)
公開| ビルド| 出力(webまたはc ++)
config(セットアップファイル。YAMLはクロスプラットフォーム構成ファイルで一般的になりつつあります)
キャッシュ
ログ
lang(en / es / ru / ...)
ブートストラップ(フレームワークとアプリを起動します)
docs(マークダウン形式の.mdで書かれたドキュメント)
テスト(単体テスト)
データベース/移行 (最初からデータベース構造を作成)
データベース/シード(テストするダミーデータでデータベースを満たします)
ライブラリ| ベンダー(すべてのサードパーティソフトウェア。C++では「libs」、通常はPHPで「vendor」)
資産| リソース(画像/音声/スクリプト/ json /任意のメディア)