Noções básicas de criação

Informar um problema Ver código-fonte

Um sistema de compilação é uma das partes mais importantes de uma organização de engenharia, porque cada desenvolvedor interage com ele dezenas ou centenas de vezes por dia. Um sistema de compilação completo é necessário para permitir a produtividade do desenvolvedor à medida que a organização escalona. Para desenvolvedores individuais, é direto para compilar seu código. Portanto, um sistema de compilação pode parecer excessivo. Mas em uma escala maior, ter um sistema de compilação ajuda no gerenciamento de dependências compartilhadas, como depender de outra parte da base de código ou um recurso externo, como uma biblioteca. Os sistemas de compilação ajudam a garantir que você tenha tudo o que precisa para criar o código antes que ele comece a ser criado. Os sistemas de compilação também aumentam a velocidade quando estão configurados para ajudar os engenheiros a compartilhar recursos e resultados.

Esta seção aborda a história e os conceitos básicos de criação e criação de sistemas, incluindo decisões de design voltadas à criação do Bazel. Se você já conhece os sistemas de compilação baseados em artefatos, como Bazel, Buck e Pants, pode pular esta seção, mas é uma visão geral útil para entender por que os sistemas de compilação baseados em artefatos são excelentes para permitir o escalonamento.

  • Por que usar um sistema de compilação?

    Se você nunca usou um sistema de compilação, comece por aqui. Esta página explica por que usar um sistema de compilação e por que os compiladores e scripts de compilação não são a melhor escolha quando sua organização começa a escalonar além de alguns desenvolvedores.

  • Sistemas de compilação baseados em tarefas

    Esta página discute sistemas de compilação baseados em tarefas (como Make, Maven e Gradle) e alguns dos desafios deles.

  • Sistemas de compilação baseados em artefatos

    Esta página discute sistemas de compilação baseados em artefatos em resposta aos pontos problemáticos de sistemas de compilação baseados em tarefas.

  • Builds distribuídos

    Nesta página, você encontra versões distribuídas ou executadas fora da sua máquina local. Isso requer uma infraestrutura mais robusta para compartilhar recursos e criar resultados (e é onde realmente acontece a mágica)

  • Gerenciamento de dependências

    Esta página aborda algumas complicações de dependências em grande escala e estratégias para neutralizar essas complicações.