Un sistema de compilación es una de las partes más importantes de una organización de ingeniería porque cada desarrollador interactúa con él potencialmente decenas o cientos de veces por día. Se necesita un sistema de compilación con todas las funciones para que el desarrollador y la productividad a medida que escala la organización. Para los desarrolladores individuales, es sencillo compilar tu código, por lo que un sistema de compilación podría parecer excesivos. Pero a mayor escala, tener un sistema de compilación ayuda a administrar las dependencias compartidas, como depender de otra parte de la base de código, o una recurso externo, como una biblioteca. Los sistemas de compilación ayudan a garantizar tener todo lo necesario para compilar tu código antes de que comience a crearse. Compilación también aumentan la velocidad cuando están preparados para ayudar a los ingenieros a compartir recursos y resultados.
En esta sección, se cubre la historia y los conceptos básicos de la compilación y compilación de sistemas, incluidas las decisiones de diseño que se usaron para hacer Bazel. Si estás con los sistemas de compilación basados en artefactos, como Bazel, Buck y Pants, puedes omitir esta sección, pero es un resumen útil para comprender por qué Los sistemas de compilación basados en artefactos son excelentes para habilitar el escalamiento.
¿Por qué usar un sistema de compilación?
Si nunca usaste un sistema de compilación, comienza aquí. En esta página, se explica por qué deberías usar un sistema de compilación y por qué los compiladores y las secuencias de comandos de compilación la mejor opción una vez que tu organización comienza a escalar más allá de unos pocos desarrolladores.
Sistemas de compilación basados en tareas
En esta página se analizan los sistemas de compilación basados en tareas (como Make, Maven y Gradle) y algunos de sus desafíos.
Sistemas de compilación basados en artefactos
En esta página, se analizan los sistemas de compilación basados en artefactos como respuesta a este problema de los sistemas de compilación basados en tareas.
-
En esta página, se abordan las compilaciones distribuidas o las que se ejecutan fuera de tu máquina local. Esto requiere una infraestructura más sólida para compartir los recursos y los resultados de compilación (¡y es donde ocurre el verdadero truco!)
Administración de dependencias
En esta página, se abordan algunas complicaciones de las dependencias a gran escala para contrarrestar esas complicaciones.