最初の答え古い、最近アクティブに質問にリンクされている動画、Googleのリポジトリがどのように行われるかについて語っています。
言及された興味深いことの1つは、バイナリに依存することなく、すべてがソースからビルドされるという事実です。これは、依存関係が古くなって他のプロジェクトでまだ使用されているという問題を回避するのに役立ちます。
技術的にどのように可能ですか?私の会社で同じことを試してみると、会社のコードベースの規模とGoogleのコードベースの規模の大きなギャップを考慮しても、2つの理由で不可能です。
IDE(Visual Studio)は、たとえば50のプロジェクトを含む小さなソリューションでさえ大きな影響を受けるため、すぐに応答しなくなります。
静的分析は、コードベース全体のサイズによって処理されます。たとえば、コードメトリックスまたはコードコントラクトの静的チェックはほとんど不可能です(コードコントラクトはおそらく数日または数週間かかります)。
継続的インテグレーションでは、コンパイルにも非常に時間がかかり、多くの依存関係を持つプロジェクトが変更されるとすぐにサーバーがクランチされ、プロジェクトの大きなツリーを再コンパイルする必要があります。
中小企業はこれらの問題をどのようにして回避し、次のことができるのでしょうか。
パフォーマンスの低下に影響されずにIDEを使用します。
変更の結果、大量のコードベースを再コンパイルする必要がある場合でも、サーバーをクランチせずにコミットするたびにコードをコンパイルしますか?