Conceptos básicos de compilación

Informar un problema Ver fuente Por la noche · 7.2 · 7.1 · 7.0 · 6.5 · 6.4

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

  • Compilaciones distribuidas

    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.