Multiversos del archivo: cómo gestionar eficientemente el versionado de código fuente con monorepos

por Beatriz Pons Bosch··77 votos

Hace un tiempo, me encontré con la complejidad de los monorepos al tratar de integrar una nueva característica en un proyecto de gran envergadura. Parecía imposible seguir el rastro de cada cambio menor en un mar de archivos. Introducir Yarn Workspaces solucionó en gran medida el caos al estructurar nuestros proyectos, permitiendo que las dependencias se manejasen de manera uniforme y centralizada. Sin embargo, lo que realmente transformó mi flujo de trabajo fue Bazel. Esta herramienta no solo mejoró el tiempo de construcción, sino que también proporcionó una capa de abstracción para manejar feedback loops más cortos durante el desarrollo.

Los monorepos, a menudo malinterpretados, son una mina de oro para cualquier equipo de desarrollo que quiera garantizar la coherencia y la integridad en sus proyectos. Esto no significa que sean la solución definitiva para cada caso, pero su estructura puede simplificar el manejo de múltiples bibliotecas y aplicaciones a largo plazo.

Implementando Git submodules aprendí a lidiar con la modularización selectiva, un enfoque que preserva la independencia de cada módulo, pero mantiene la unidad del proyecto. Complementando esta estrategia, configurar CI/CD con herramientas como Jenkins y CircleCI ha sido crucial para automatizar los despliegues, asegurando que cada pieza del puzzle encaje a la perfección cada vez que se realiza un cambio.

Aunque no existe un "tamaño único" para todos cuando se trata de configurar y gestionar monorepos, la clave está en experimentar y adaptar las herramientas a las necesidades particulares de cada proyecto. En mi experiencia, esto ha significado una exploración constante de varias herramientas y técnicas para descubrir cuáles ofrecen el mayor beneficio sin sacrificar la flexibilidad ni la eficiencia.