Um sistema de build é uma das partes mais importantes de uma organização de engenharia, porque cada desenvolvedor interage com ele potencialmente dezenas ou centenas de vezes por dia. Um sistema de build completo é necessário para permitir a produtividade dos desenvolvedores à medida que uma organização cresce. Para desenvolvedores individuais, é simples compilar o código, e um sistema de build pode parecer excessivo. Mas, em uma escala maior, ter um sistema de build ajuda a gerenciar dependências compartilhadas, como depender de outra parte da base de código ou de um recurso externo, como uma biblioteca. Os sistemas de build ajudam a garantir que você tenha tudo o que precisa para criar seu código antes de começar a criar. Os sistemas de build também aumentam a velocidade quando são configurados para ajudar os engenheiros a compartilhar recursos e resultados.
Esta seção aborda um pouco da história e os fundamentos da criação e dos sistemas de build, incluindo as decisões de design que foram tomadas para criar o Bazel. Se você conhece sistemas de build baseados em artefatos, como Bazel, Buck e Pants, pode pular esta seção. No entanto, ela oferece uma visão geral útil para entender por que esses sistemas são excelentes para permitir o escalonamento.
-
Se você nunca usou um sistema de build, comece aqui. Nesta página, explicamos por que você deve usar um sistema de build e por que compiladores e scripts de build não são a melhor opção quando sua organização começa a crescer além de alguns desenvolvedores.
Sistemas de build baseados em tarefas
Nesta página, discutimos sistemas de build baseados em tarefas (como Make, Maven e Gradle) e alguns dos desafios deles.
Sistemas de build baseados em artefatos
Esta página discute sistemas de build baseados em artefatos em resposta aos pontos problemáticos dos sistemas de build baseados em tarefas.
-
Esta página aborda builds distribuídos, ou seja, executados fora da sua máquina local. Isso exige uma infraestrutura mais robusta para compartilhar recursos e gerar resultados (e é aqui que a verdadeira mágica acontece!).
-
Esta página aborda algumas complicações de dependências em grande escala e estratégias para neutralizá-las.