Necesitas juntar todo en un gigantesco monorepo. Nosotros mismos, construimos herramientas de monorepo, ¿verdad? Sin embargo, tenemos múltiples monorepos. Está el repositorio de NX para código abierto y plugins y similares. Está el repositorio de NX Cloud para infraestructura y código cerrado. Y luego está el repositorio de NX Console, que es de código abierto. Probablemente podría estar en el repositorio de NX Open Source, pero no es necesario. Tiene versiones independientes, diferentes equipos trabajan en él, así que está bien mantenerlo allí. Así que lo mismo se aplica para ti. Lo más probable es que puedas comenzar a adoptar monorepos de manera incremental, agrupar lo que tenga sentido para ti, y no dejes que nadie más te diga cómo organizar tu código.
Hola. Así que para esta siguiente sección sobre tooling, voy a usar NX como ejemplo. Pero hay muchas otras herramientas de monorepo por ahí, y te animo a que vayas a monorepo.tools, que es un sitio web con información donde puedes aprender todo sobre monorepos y las herramientas para construirlos. Y todos esos autores de esas herramientas, colaboraron en el sitio. Así que es una comparación tan justa e imparcial como puede ser. Hola.
Bien. Así que voy a hacer una afirmación audaz, que es que ejecutar pruebas lleva tiempo. Bien, tal vez no sea la opinión tan candente que pensé que sería, pero es cierto, ¿verdad? Así que si ponemos más y más proyectos en nuestro monorepo, y hay más y más pruebas en nuestro monorepo, ¿no significa eso que el tiempo para probar, especialmente en CI, aumentará y aumentará y aumentará? Bueno, sí, pero también no, porque un buen tooling puede ayudar. Así que a través del análisis de tus importaciones, y tus archivos, y tu configuración, Enix puede construir este gráfico de proyecto de tu proyecto de tu espacio de trabajo. Puedes ver un ejemplo que me gusta usar aquí. Hay una aplicación de carrito y una aplicación de producto que probablemente trabajan juntas en alguna configuración de federación de módulos micro-frontend. Y hay algunas bibliotecas que comparten, y hay algunas bibliotecas que son solo para ellas. Así que a través de esto, en realidad se vuelve muy fácil para Enix ver qué está afectado por un cierto cambio. Bien. Así que hago un cambio en la página de detalles de productos, y Enix dirá que necesitaremos volver a probar, construir y lint, no, no lint, reconstruir y volver a probar la aplicación de productos, así como volver a ejecutar y probar la aplicación de productos para asegurarnos de que todo sigue funcionando. Pero no hay forma de que haya podido romper la aplicación de carrito porque no hay un camino en este gráfico desde la aplicación de carrito hasta la página de detalles del producto. Esto hace que CI sea mucho más simple también. En lugar de una larga lista de pasos, podemos simplemente decir, Enix, por favor vuelve a probar, lint, construir, ejecutar y probar todo lo que esté afectado por este cambio. Eso es todo. Esa es tu configuración de CI ahora.
Comments