Y así sabe, según el gráfico, qué procesos se pueden construir en paralelo, donde básicamente pueden asignar una sola tarea a un agente porque es una tarea de larga duración y cuál debe ejecutarse en serie. Y al final, la parte de DX, aquí es donde se recopilan y envían todos los registros y artefactos al nodo principal real y se agrupan. Y desde la perspectiva de un desarrollador, si ocurre un error o desea ver la ejecución real, simplemente puede ir a los registros y los verá de la misma manera que si se hubieran ejecutado en una sola máquina.
Y es aún mejor porque todas esas tareas ahora están distribuidas en los agentes. Aquí, puedes ver una captura de pantalla de NX cloud que muestra la utilización de los agentes y cómo se equilibran también en función de los datos previos que NX cloud ha obtenido y, por lo tanto, sabe cómo paralelizar mejor esas tareas. Y obtienes incluso una visualización agradable. Entonces, cada vez que se ejecuta una PR, puedes entender en tiempo real cuántos agentes están ejecutándose actualmente, qué tareas se están ejecutando en qué agente, lo cual es particularmente importante para fines de depuración.
Ahora, esto fue un poco rápido y ya un poco entrelazado con la parte de DX, como acabamos de ver, como la visualización, por ejemplo, que te ayuda desde una perspectiva de experiencia de desarrollador a depurar cosas. Pero DX es muy importante en React, más en el escenario de monorepo en general, porque no hay nada como tener una configuración de monorepo rápida, súper completa de funciones, pero es muy difícil de usar o configurar desde una perspectiva de desarrollador. Y en NX específicamente, la parte importante es la parte de experiencia de desarrollador. Y, en primer lugar, las cosas deben adoptarse incrementalmente, ¿verdad? Por lo tanto, NX se puede configurar de dos formas principales diferentes. Puedes comenzar con una configuración central, lo que significa que no usas ningún complemento que venga con NX, solo instalas NX y lo usas en tu monorepo existente.
Y para escenarios de migración, esto es ideal porque aún puedes usar la misma infraestructura que tenías antes, y NX simplemente hará que las tareas se ejecuten mucho más rápido. Lo que aprovechas es el programador de tareas rápidas, el caché y también la ejecución de tareas distribuidas si usas NX cloud, como acabas de ver. El otro enfoque es que si comienzas de nuevo, puedes beneficiarte de configurar NX con algunas cosas preconfiguradas. Por ejemplo, puedes decir: `Sé que estoy usando una configuración de monorepo de react porque react es mi enfoque principal`. Entonces, ya puedes usar algunas plantillas preconfiguradas que vienen con NX. Y NX se asegurará de que tengas la configuración de Jest, ESLint, Prettier, configuración de Cypress lista para ti. Por lo que no tienes que preocuparte por muchas de esas cosas. Por lo general, esa es la mejor opción si estás comenzando un nuevo monorepo en este momento.
Por lo tanto, para la configuración central, es muy fácil de ajustar. Básicamente, solo ejecutas el comando npx add NX to monorepo, que lo agregaría a cualquier espacio de trabajo de npm, yarn, pnpm y simplemente lo haría mucho más rápido. Curiosamente, como mencioné al principio, asumimos el control de Seo Chip para Lerna, y ahora podemos hacer cosas muy interesantes, especialmente para tus espacios de trabajo de Lerna. Por ejemplo, en este momento, si estás usando Lerna 5.1 o superior, solo tienes que instalar NX y establecer use NX en true en tu archivo Lerna JSON, y automáticamente delegará la programación de tareas a NX, lo que hará que Lerna sea súper rápido sin que tengas que cambiar nada más, lo cual es muy importante, creo, desde una perspectiva de economía de desarrollador.
Otra cosa es la salida hermosa. Ahora, esto puede no parecer tan importante inicialmente, pero si piensas en cuántas veces miras las salidas de la terminal como desarrollador, y para reducir la carga cognitiva, NX realmente solo muestra lo más importante en este momento. Por ejemplo, no muestra la ejecución de tareas dependientes como en esta animación aquí, sino solo lo que se ejecuta, a menos que, por supuesto, ocurra algún error. Eso se resaltaría, obviamente, en grande y en rojo, e incluso si vuelves a ejecutar la tarea y se almacenan en caché, la salida es exactamente la misma. Por lo tanto, básicamente tienes una carga cognitiva mucho menor cuando analizas esos registros porque solo ves lo que necesitas en este momento. También la integración de ID.
Comments