Система сборки — одна из самых важных частей инженерной организации, потому что каждый разработчик взаимодействует с ней потенциально десятки или сотни раз в день. Полнофункциональная система сборки необходима для повышения производительности разработчиков по мере роста организации. Отдельным разработчикам достаточно просто скомпилировать свой код, поэтому система сборки может показаться чрезмерной. Но в более широком масштабе наличие системы сборки помогает управлять общими зависимостями, такими как использование другой части базы кода или внешнего ресурса, такого как библиотека. Системы сборки помогают убедиться, что у вас есть все необходимое для сборки кода до того, как он начнется. Системы сборки также увеличивают скорость, когда они настроены так, чтобы помочь инженерам обмениваться ресурсами и результатами.
В этом разделе рассказывается об истории и основах построения и построения систем, включая проектные решения, которые использовались при создании Bazel. Если вы знакомы с системами сборки на основе артефактов, такими как Bazel, Buck и Pants, вы можете пропустить этот раздел, но это полезный обзор, чтобы понять, почему системы сборки на основе артефактов отлично подходят для масштабирования.
Если вы еще не использовали систему сборки, начните здесь. На этой странице рассказывается, почему вам следует использовать систему сборки и почему компиляторы и сценарии сборки — не лучший выбор, когда ваша организация начинает расширяться за пределы нескольких разработчиков.
Системы сборки на основе задач
На этой странице обсуждаются системы сборки на основе задач (такие как Make, Maven и Gradle) и некоторые их проблемы.
Системы сборки на основе артефактов
На этой странице обсуждаются системы сборки на основе артефактов в ответ на болевые точки систем сборки на основе задач.
На этой странице рассматриваются распределенные сборки или сборки, которые выполняются за пределами вашего локального компьютера. Для этого требуется более надежная инфраструктура для совместного использования ресурсов и получения результатов (и именно здесь происходит настоящее волшебство!)
На этой странице рассматриваются некоторые сложности зависимостей в больших масштабах и стратегии противодействия этим осложнениям.