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

Informar um problema Mostrar 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 build completo é necessário para permitir a produtividade do desenvolvedor à medida que a organização é escalonada. Para desenvolvedores individuais, é simples compilar o código e, portanto, um sistema de build pode parecer excessivo. No entanto, em uma escala maior, ter um sistema de build ajuda a gerenciar dependências compartilhadas, por exemplo, dependendo 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 o código antes de começar. Os sistemas de build também aumentam a velocidade quando são configurados para ajudar os engenheiros a compartilhar recursos e resultados.

Nesta seção, abordamos a história e os conceitos básicos da criação e criação de sistemas, incluindo as decisões de design relacionadas à criação do Bazel. Se você conhece sistemas de build baseados em artefatos, como Bazel, Buck e Pants, pule esta seção, mas ela é uma visão geral útil para entender por que os sistemas de build baseados em artefatos são excelentes em termos de escalonamento.

  • Por que um sistema de build?

    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 escolha quando sua organização começa a escalonar além de alguns desenvolvedores.

  • Sistemas de build baseados em tarefas

    Esta página discute 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 desses sistemas.

  • Compilações distribuídas

    Nesta página, você verá versões distribuídas ou executadas fora da máquina local. Isso exige uma infraestrutura mais robusta para compartilhar recursos e resultados de criação (e é aí que a verdadeira magia acontece!)

  • 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.