建構系統是工程團隊最重要的部分之一,因為每位開發人員每天可能會與其互動數十次或數百次。為了讓開發人員在機構擴大規模時提高工作效率,您必須使用功能齊全的建構系統。對於個別開發人員而言,只要編譯程式碼即可,因此建構系統可能會顯得過於複雜。但在更大規模的情況下,建構系統有助於管理共用依附元件,例如依附元件是依賴程式碼庫的其他部分,或是外部資源 (例如程式庫)。建構系統可確保您在開始建構程式碼前,已備妥所有必要項目。當建構系統設定完成,可協助工程師分享資源和結果,也會提升速度。
本節將介紹建構和建構系統的歷史和基本概念,包括 Bazel 的設計決策。如果您熟悉以人工製品為基礎的建構系統 (例如 Bazel、Buck 和 Pants),可以略過本節,但這裡提供的概略說明,有助您瞭解為何以人工製品為基礎的建構系統非常適合用於啟用規模。
-
如果您之前未使用過建構系統,請從這裡開始。本頁說明為何應使用建構系統,以及為何在貴機構開始擴展至少數開發人員以外的情況下,編譯器和建構指令碼並非最佳選擇。
-
本頁面將討論以工作為基礎的建構系統 (例如 Make、Maven 和 Gradle) 以及相關挑戰。
-
本頁面將討論以人工製品為基礎的建構系統,以因應以工作為基礎的建構系統的痛點。
-
本頁面將說明分散式版本,也就是在本機電腦以外執行的版本。這需要更強大的基礎架構,才能分享資源並建立結果 (這就是真正的魔法所在)
-
本頁面將說明一些大型依附元件的複雜性,以及因應這些複雜性的策略。