0

このトピックに関連する他の多くの質問があります:

  1. PHPアプリケーションの優れた標準コードレイアウトは何ですか(削除済み)
  2. Javaアプリケーションを構築する方法、言い換えると、クラスはどこに置くのですか?
  3. 推奨されるソース管理ディレクトリ構造?
  4. バージョン管理におけるプロジェクトの構造

チームビルド、統合された単体テストなどのいくつかの機能を備えたVSTFに固有のものは見つかりませんでした。これらの機能が、わずかに異なるソースレイアウトの推奨につながるのではないかと思います。

幸運に恵まれた高レベルのディレクトリ構造の例を投稿して、なぜそれらが好きなのかを説明してください。私は人々に「最良の」アプローチに投票させ、数日以内に答えを授与します。

4

2 に答える 2

1

ここに私が好きなものがあります:

  • プライベート; 現在のシステム成果物のすべて
    • ドキュメンテーション; 製品を構成するソリューション全体のすべてのドキュメントのロールアップ。出力は Sandcastle の MSDN スタイルのドキュメントになります。
    • 共通; 他のすべてのソリューションに共通するすべてのプロジェクトを含む Visual Studio SLN。
    • ツール; 出力がツールであるすべてのプロジェクトを含む Visual Studio SLN。例としては、大規模なシステムで一連の管理タスクを実行するコンソール アプリが考えられます
    • 開発者; 各開発者には、必要なものを保存するために使用できる独自のフォルダーがあります
      • 特定の開発者 (1..n) ; これには、この特定の開発者がソース管理システムに保存することを選択したビルド設定、スクリプト、およびツールが含まれます (開発者はここでやりたいことを実行できます)。
    • 特定の成果物ソリューション (1..n) ; 特定の主要成果物のすべてのプロジェクトを含む Visual Studio SLN
      • 共通; 現在のソリューション内で共有されている Visual Studio プロジェクトを含むソリューション フォルダー
      • UI ; ユーザー エクスペリエンスを定義する Visual Studio プロジェクトを含むソリューション フォルダー
      • データ層; データ アクセス層を定義する Visual Studio プロジェクトを含むソリューション フォルダー
      • サービス; Web サービスを定義する Visual Studio プロジェクトを含むソリューション フォルダー
      • ツール; この成果物に固有のツール (実行可能ユーティリティ) を定義する Visual Studio プロジェクトを含むソリューション フォルダー
      • テスト; 単体テストを含む Visual Studio プロジェクトを含むソリューション フォルダー
  • 公開; システムに関連するすべての外部依存関係 (例: サードパーティ ライブラリ)
    • ベンダー; 特定のベンダーが提供する依存関係
  • ビルドします。プロジェクトのビルドに関連付けられたコードを含む Visual Studio SLN (この場合、ほとんどがカスタム MSBuild タスクと Powershell スクリプト)
  • ターゲット; 製品の成功した各ビルドとポイント リリース
    • デバッグ; 毎週のビルドと継続的インテグレーションから出力されるすべてのデバッグ ビルド。開発者はこのディレクトリを手動で管理しません
      • ビルド番号; 現在のビルド番号に対応するディレクトリ
        • 解決策の出力; 特定のソリューションの各プロジェクトのすべてのビルド出力を含むディレクトリ
    • リリース; マイルストーンに到達したときに手動で出力されるすべてのリリース ビルド
      • ビルド番号; 現在のビルド番号に対応するディレクトリ
        • 解決策の出力; 特定のソリューションの各プロジェクトのすべてのビルド出力を含むディレクトリ

注:すべてのソリューションには、Tests フォルダーと単体テスト プロジェクトがあります。

于 2008-09-19T01:00:35.420 に答える
1

いくつかの考え:

  • ツリーのルートにあるファイルはほとんどありません。大規模なチームでは、権限を設定して、なんらかの承認なしに誰もツリーのルートに新しいファイルを追加できないようにします。

デフォルトのワークスペースには次が含まれます。

  • Toolsには、カスタム ツールやスクリプトなど、単体テストのビルドと実行に必要なすべての実行可能コードが含まれています (おそらく、Visual Studio と PowerShell がマシンに既にインストールされていると仮定します)。

  • ReferencedAssembliesには、購入またはダウンロードしたものや、チームの誰かが書いたがこのプロジェクトの一部ではないものなど、他の場所から拾ったものがあります。

    • 利用可能な場合は、ソース コードもここにある必要があるため、自分でサービスを提供できます。(利用できない場合は、大きなリスクを冒しています。)
  • ソース- プロジェクト ファイルを含むすべてのソース コード。

  • ドキュメント- ビルドの一部としては使用されませんが、開発作業が適切に機能するために必要なアイテム。

  • バイナリ-サービスに必要な .PDB やその他のアーティファクトを含む、顧客に出荷されたビット。(小さなプロジェクトでは、リリースごとにソースをフォークしますが、通常はタグ/ラベルの方が適しています。)


他の場所 (例: $/personal) には、各人が好きなように処理できる場所があります ($/personal/USERNAME)。たとえば、私のサイド プロジェクトはここに移動します。

于 2008-12-29T07:04:18.040 に答える