各デベロッパーが 1 日に数十回または数百回操作する可能性があるため、ビルドシステムはエンジニアリング組織の最も重要な部分の 1 つです。デベロッパーが機能を有効にするには、完全な機能を備えたビルドシステムが必要です。 向上させることができます個々のデベロッパーにとって、コードをコンパイルするだけで済むため、ビルドシステムは過剰に思えるかもしれません。ただし、規模が大きい場合、ビルドシステムを使用すると コードベースの他の部分やコードベースの依存関係に依存するなど、 外部リソースに割り当てられます。ビルドシステムを使用すると、 コードのビルドに必要なものがすべて揃っています。エンジニアがリソースと結果を共有できるようにビルドシステムを設定すると、速度も向上します。
このセクションでは、Bazel の設計に関する意思決定など、ビルドとビルドシステムの歴史と基本について説明します。もし Bazel、Buck、Pants などのアーティファクト ベースのビルドシステムに精通している場合、 このセクションはスキップできますが、 アーティファクト ベースのビルドシステムは、スケーリングを実現する点で優れています。
-
ビルドシステムを初めて使用する場合は、こちらから始めてください。このページでは、ビルドシステムを使用する理由と、組織が数人のデベロッパーを超えて拡大し始めると、コンパイラとビルドスクリプトが最適な選択肢ではなくなる理由について説明します。
-
このページでは、タスクベースのビルドシステム(Make、Maven、 Gradle など)と、その課題について説明します。
-
このページでは、問題に対処するためのアーティファクト ベースのビルドシステムについて説明します。 タスクベースのビルドシステムの重要な部分です。
-
このページでは、分散ビルド、つまり Google Cloud の外部で実行されるビルドについて説明します。 インストールします。そのためには、インフラストラクチャを 結果を構築します(真のウィザードはここで行われます)。
-
このページでは、大規模な依存関係の複雑さと、その複雑さを軽減するための戦略について説明します。