Entonces, ¿qué es más, esto realmente es un enfoque diferente para organizar y estructurar tu código en un espacio de trabajo de monorepo. Porque lo que sucede aquí es que tus aplicaciones en la parte superior se vuelven muy, muy delgadas y realmente solo son la parte de empaquetado de tu configuración específica de etiqueta. Aquí es donde incluyes los componentes en tu enrutamiento, cómo esa etiqueta específica como la configuración de Next.js o Remix lo demanda, mientras que los paquetes allá abajo están más encapsulados, están bien definidos, generalmente tienen límites de API bien definidos e incluso pueden ser independientes de la etiqueta.
Entonces, no tienen que serlo, porque algunos de ellos pueden ser cosas específicas de una función donde incluso exponemos cargadores de Remix, que se incluyen en una aplicación de Remix. Pero cosas como los flujos de trabajo de autenticación pueden ser totalmente independientes de la etiqueta y estar escritos en puro TypeScript. Y como puedes imaginar, esto permite una portabilidad mucho más fácil de las características. Y aunque tengas que refactorizar cosas, es mucho más fácil si ya se han extraído.
Lo que también obtienes de manera más interesante es que puedes ejecutar, por ejemplo, la visualización de un gráfico. Esto es específico de Nx, donde puedes ejecutar un gráfico de Nx y te mostrará la estructura de tu aplicación. Ahora, en nuestra configuración súper simple, solo tenemos dos aplicaciones que dependen de ambos paquetes. Pero en una configuración más avanzada, esto puede volverse más complicado. Y lo más importante, este tipo de configuración también se escala con tu equipo. Ahora es muy fácil asignar equipos a esos paquetes específicos donde uno trabaja en la parte de autenticación, hay otro grupo de personas y desarrolladores que trabajan en la parte del sistema de diseño, que se comparte más en diferentes aplicaciones que puedas tener. Pero luego también hay características como una lista de productos, donde otro equipo trabaja que se centra en el aspecto comercial de la aplicación. Y ahora que tienes esos paquetes más detallados, incluso puedes ejecutar las pruebas en un modo aislado solo contra la lista de productos, solo la parte de autenticación. Por lo tanto, es aún más fácil averiguar qué está fallando si las pruebas fallan porque son fácilmente identificables. Y además, si ahora ejecutas esto incluso en CI, dado ese gráfico que ahora está presente, es imposible ejecutar solo las cosas que se han modificado. Por ejemplo, digamos que modificamos un solo nodo en ese gráfico, entonces solo esos serían los que se prueban, construyen y vinculan en tu sistema de CI. Al mismo tiempo, esto también es una forma de diversificar tu stack. Porque como hemos visto, comenzamos desde una aplicación de Next.js y tenemos la intención de agregar una aplicación de Remix y luego migrar piezas. E incluso puedes tener múltiples aplicaciones, múltiples stacks de tecnología diferentes al mismo tiempo, que se implementan en diferentes tipos de destinos de tu organización. Y todo esto gracias a esa estructura modular donde las aplicaciones están desacopladas de los paquetes modulares reales. Entonces, en particular, también hemos visto hoy cómo podemos implementar ese stack con Nx y cómo eso puede ayudar.
Ahora, hemos visto dos enfoques diferentes de cómo usar Nx en esta configuración. El primero es probablemente más ideal si ya tienes un stack existente. Entonces, digamos que ya tienes ese espacio de trabajo de npm en una configuración así. Pero ahora quieres agregar Remix a eso y quieres que Nx te ayude a gestionarlo y escalarlo a medida que crece. Si estás comenzando de nuevo, probablemente te inclines hacia el tipo de configuración más integrada, que ofrece muchos más beneficios, como toda esa actualización rápida. La observación ya funciona. Pero al mismo tiempo, te brinda esa configuración predefinida donde no tienes que preocuparte por todos los detalles de nivel inferior por tu cuenta. La parte interesante aquí es realmente que Nx te ayuda no solo a escalar a medida que creces con características como el almacenamiento en caché local y remoto, sino que también viene con algunos aspectos agradables de DX, como una extensión dedicada de Visual Studio Code que puede ayudarte a desarrollar a largo plazo. Entonces, si esto suena interesante, definitivamente únete y síguenos en Nx Dev Tools, en Nx.dev, que es el sitio web principal, o también únete a nuestro Slack de la community, que puedes encontrar en la diapositiva aquí. Gracias por ver.
Comments