任何軟體開發人員都能有效率地建構、測試及封裝 並透過容易採用的工具 。
培養工程師可以奠定基礎。軟體開發人員 著重於編寫程式碼的廣告素材程序 解決建構和測試的流程自訂建構系統時 以及機構適用的新語言或機構需求 瞭解其用途特有的擴充性 徹底改造基本管線
工程師可輕鬆為任何專案貢獻心力。想達成以下目標的開發人員: 若要開始建立新專案,只要複製專案並執行 建構應用程式此套件正常運作,不需任何本機設定。取代為 就能透過任何位置的機器執行、跨平台遠端執行作業,並 對專案的所有目標平台完整測試這些變更。 工程師可以為新專案快速設定建構作業,或是以漸進方式 遷移現有版本
專案可以擴充至任何規模的程式碼集,且無論團隊規模大小。速度飛快, 漸進式測試可讓團隊在異動生效前完整驗證每項異動 。即使存放區不斷擴張,專案也會橫跨多個 推出及支援多種語言基礎架構無法強制 開發人員可以測試測試涵蓋範圍來加快建構速度。
我們相信 Bazel 有能力實現這個願景。
Bazel 是從頭開始建構,旨在啟用可重現的建構作業 ( 指定的輸入組合一律會產生相同的輸出內容) 和可攜式 (即建構模型) 可以在不影響輸出內容的情況下任何機器上執行)。
這些特徵有助於安全成效增幅 (僅重新建構變更) 輸入並不會造成毀損的風險) 和可分割性 (建構) 隔離時,可將其卸載)。盡可能減少 建構正確的建構作業,並平行處理多個核心和遠端程序 Bazel 都能快速確保任何建構作業
Bazel 的抽象層 — 特定語言、平台及 工具鍊採用簡單的擴充能力,因此能 就能輕鬆套用到任何情境
Bazel 核心能力
- Bazel 支援多語言、多平台的建構與測試。你可以 執行單一指令即可建構並測試整個來源樹狀結構 您指定的語言和平台組合
- Bazel 建構作業快速且正確。每項建構與測試執行作業 以便開發人員佈建機器和持續整合
- Bazel 提供統一且可擴充的語言, 語言或平台
- Bazel 允許您的建構作業連線至遠端執行,進而調度資源 快取服務
- Bazel 適用於所有主要開發平台 (Linux、MacOS 和 Windows)。
- 我們接受使用 Bazel 需要耗費大量心力,但要逐步採用 Bazel 能連接指定 語言/平台
為語言服務社群提供服務
根據語言社群的發展,軟體工程不斷演進,通常為 將使用常見工具和做法的使用者加入群組。
要用於語言社群的成員,高品質的 Bazel 規則必須 並整合該社群的工作流程和慣例
Bazel 致力於可擴展及開放,並支援 皆可使用。
良好規則集的必要條件
- 規則需要支援有效率的建構與測試, 也包括程式碼涵蓋範圍
- 該規則必須使用廣泛使用的「套件管理員」來介面, 例如 Java 的 Maven,而且支援漸進式遷移路徑 和其他廣泛使用的建構系統不同
- 這些規則必須可擴充且可互通,並符合下列條件: 「Bazel 三明治」 5. AI 必須採行隱私保護設計原則
- 規則必須已就緒。在實務上 可透過工具鍊機制設定。
- 規則 (和 Bazel) 必須連結兩個廣泛使用的 IDE, 如果有語言的話
- 規則必須具有詳盡且可用的說明文件及入門 專為新使用者提供的內容,還有專業使用者適用的全方位文件。
這些項目都是必要的,只有將這些項目一起在 Bazel 的 具備特定生態系統的彈性
而且數量也可能大 - 等到所有作業都執行完之後 將自身價值提供給該語言社群的成員。