
Beginning Bazel
P.J. McNerney
- Editorial
- Apress
- Año
- 2019
- Páginas
- ~192
- Nivel
- Básico
De qué trata
Introducción práctica y concisa al sistema de compilación y pruebas de código abierto Bazel (la versión pública de Blaze desarrollada por Google). Publicada por Apress a finales de 2019, la obra se sitúa en los primeros lanzamientos estables de Bazel (versiones 1.x) y está dirigida a ingenieros de software, especialistas en DevOps y líderes técnicos que necesitan compilar y probar proyectos multilenguaje a gran escala. Para aprovechar el libro se requieren conocimientos básicos del uso de la terminal de comandos y nociones de programación en Java, Go o C++.
El recorrido cubre desde la instalación de Bazel en Linux, macOS y Windows hasta los conceptos fundamentales de la herramienta: espacios de trabajo (WORKSPACE), archivos de configuración BUILD, sintaxis Starlark, paquetes y destinos de compilación (targets). McNerney profundiza en la gestión de dependencias externas, la organización de monorrepositorios y la integración de toolchains para diversos lenguajes y plataformas. Se detallan reglas oficiales para compilar proyectos en Java y Go, la definición y serialización de esquemas agnósticos con Protocol Buffers (Protobuf), la comunicación remota con gRPC y la configuración de compilaciones para aplicaciones móviles nativas en Android (Android SDK) e iOS (reglas para Xcode).
A través de ejemplos de código progresivos alojados en su repositorio oficial, el lector construye programas cliente/servidor, canalizaciones de generación de código RPC y empaquetados para plataformas móviles bajo un mismo árbol de dependencias reproducible. El libro destaca por desmitificar la curva de aprendizaje de Bazel y enseñar cómo acelerar drásticamente los tiempos de compilación mediante el almacenamiento en caché determinista y hermético. Como contrapartida, no profundiza en la creación de reglas Starlark complejas desde cero ni en la administración de granjas de ejecución remota masivas, y conviene tener en cuenta que en versiones actuales de Bazel el archivo WORKSPACE ha evolucionado hacia Bzlmod (MODULE.bazel), aunque los fundamentos de grafo de compilación y hermeticidad siguen intactos.
- Bazel
- Sistemas de compilación
- Java
- Go
- Protocol Buffers
- gRPC
- Monorrepositorios
- Archivos BUILD y WORKSPACE
- Compilación para Android
- Compilación para iOS
- Caché hermética
¿Cómo enseña?
Con proyectos
- ✗ Sin ejercicios
- ✓ Incluye proyectos
Proyectos
Cliente y servidor Echo
Programa cliente/servidor que demuestra la división de código en paquetes, la gestión de dependencias locales y la definición de reglas de ejecución y prueba en Bazel con Go y Java.
Servicio de mensajería con gRPC y Protobuf
Implementación de comunicación cliente/servidor que aprovecha las reglas de Bazel para compilar archivos .proto y generar automáticamente el código de transporte gRPC.
Flujos de compilación móvil para Android e iOS
Estructuración y compilación de proyectos móviles cliente utilizando las reglas nativas de Bazel para empaquetar binarios de Android y aplicaciones para iOS.

