Un sistema di build è una delle parti più importanti di un'organizzazione di ingegneri, perché ciascuno sviluppatore interagisce con esso potenzialmente a decine o centinaia di volte al giorno. È necessario un sistema di build con funzionalità complete per consentire la produttività degli sviluppatori su scala aziendale. Per i singoli sviluppatori, è semplice compilare il codice e quindi un sistema di build potrebbe sembrare eccessivo. Tuttavia, su vasta scala, disporre di un sistema di compilazione ti aiuta a gestire le dipendenze condivise, ad esempio affidandoti a un'altra parte del codebase o a una risorsa esterna, come una libreria. I sistemi di build ti aiutano a garantire che tu abbia tutto ciò che ti serve per creare il codice prima che inizi a crearsi. Inoltre, i sistemi di build aumentano la velocità quando vengono configurati per aiutare gli ingegneri a condividere risorse e risultati.
Questa sezione tratta alcune nozioni di base e di storia della creazione e della creazione di sistemi, incluse le decisioni di progettazione che sono state prese nella produzione di Bazel. Se hai familiarità con i sistemi di build basati su artefatti, come Bazel, Buck e Pants, puoi saltare questa sezione, ma si tratta di una panoramica utile per comprendere perché i sistemi di build basati su artefatti sono eccellente per la scalabilità.
Perché un sistema di compilazione?
Se non hai mai utilizzato un sistema di build, inizia qui. In questa pagina viene spiegato perché utilizzare un sistema di build e perché i compilatori e gli script della build non sono la scelta migliore quando l'organizzazione inizia a scalare oltre alcuni sviluppatori.
Sistemi di compilazione basati su attività
In questa pagina vengono descritti alcuni sistemi di compilazione basati su attività (ad esempio Marca, Maven e Gradad) e alcune delle problematiche dell'azienda.
Sistemi di build basati su artefatti
Questa pagina descrive i sistemi di build basati su artefatti in risposta ai punti critici dei sistemi di compilazione basati su attività.
-
In questa pagina vengono descritte le build distribuite o le build eseguite all'esterno della macchina locale. Ciò richiede un'infrastruttura più solida per condividere risorse e creare risultati (ed è proprio qui che avviene la vera magia!).
-
Questa pagina descrive alcune complicazioni delle dipendenze su larga scala e strategie per contrastarle.