que es específico de este fragmento. Que es el fragmento de nuestro componente superior. Que es un fragmento de vista de documento. Y aquí en la vista de documento obtenemos todos los
data a los que este componente debería tener acceso. Por lo tanto, este componente no puede acceder a los
data del componente hijo. Solo accede a los
data de su propio fragmento, que son el id y el título. Si bajamos, vemos que pasamos la vista de documento al componente hijo. Y aquí, por ejemplo, echemos un vistazo a las etiquetas. Entonces aquí tenemos co-ubicación. Aquí queda muy claro que este componente obtiene estos
data. Obtiene un subconjunto de
data en el tipo de documento del esquema. Obtiene la categoría, la fecha de creación y el estado. Aquí puedes ver que solo obtengo los
data que necesito... en realidad necesito, ya sabes, para mostrar todo lo relacionado con las etiquetas. Y lo mismo ocurre con Ascini. Entonces, ¿por qué es interesante el fragment masking? Primero, te ayuda a expresar la dependencia de datos del componente de manera co-ubicada. Ahora no tienes fragmentos que representen submodelos en el front-end. En realidad, representa los
data y esto es para lo que se ha creado
GraphQL, para ser muy declarativo acerca de la dependencia de datos en general, no solo a nivel de consulta, sino también a nivel de componente. Evita la filtración de datos entre componentes. Te aseguras de que si un componente es responsable de una cosa, que es mostrar el título, no tenga acceso a otros tipos de
data, lo que podría llevar a una implementación incorrecta. Y lo bueno es que si comienzas a hacer eso, si comienzas a definir fragmentos para describir componentes, estás haciendo que tu interfaz de usuario sea resistente al uso diferido en el futuro. Y no estoy hablando de eso hoy, pero ya puedes comenzar a usar defer si estás usando
Apollo con
Apollo Router, pero también si estás usando
Apollo o Yocl con
GraphQL Yoga o la biblioteca del servidor
GraphQL. Ok, ahora hablemos del futuro de CodeGen. Como acabamos de ver, estamos en proceso de trabajar en la versión 3 de CodeGen. El primer paso ha sido mejorar la
developer experience con este ajuste preestablecido del cliente, como acabamos de ver, que funciona con tipos de impacto ligero o sin impacto si usas el complemento de paquete, y te brinda una operación
GraphQL muy ajustada mientras escribes. Luego movimos todos los demás complementos existentes, como la generación de hooks, la generación de SDK, a un repositorio de complementos de la
community, donde toda la
community podrá mantenerlos por sí misma, utilizando el propietario del código de GitHub, y asegurándonos de que la
community pueda seguir creciendo por sí misma con nuestra ayuda, pero sin que nosotros seamos un obstáculo para avanzar en todos esos complementos. Además, todos estos tres primeros puntos ya están sucediendo. Ahora mismo, como acabo de mostrar, puedes usar una configuración de CodeGen en
TypeScript y obtener una configuración de tipo, por lo que esto te brinda una experiencia superior porque ahora, si cometes un error tipográfico en tu configuración, tendrás un error de
TypeScript y tendrás autocompletado de
TypeScript. En los próximos meses vamos a comenzar a reescribir el núcleo de CodeGen, el paquete principal, para tener más
performance, un monitoreo más inteligente y generar menos tipos, para generar solo los tipos que se utilizan en la operación. Y finalmente, planeamos introducir soporte para características modernas de
GraphQL, como diferentes transmisiones y otros RFC en la actualización. Estamos esperando tus comentarios y necesitamos tus comentarios sobre esta propuesta de hoja de ruta y esta hoja de ruta en la que estamos comenzando a iterar. Hay un problema dedicado a eso que está fijado en la parte superior de los problemas en el repositorio principal de CodeGen de
GraphQL, por lo que estamos esperando tus comentarios y estamos construyendo esta versión 3 contigo. Como acabo de decir, esta presentación fue sobre
GraphQL Code Gen, el Guild está haciendo muchas cosas en el ecosistema de
GraphQL, estamos construyendo nuestra propia biblioteca de puerta de enlace con
GraphQL Mesh, nuestra propia implementación de servidor
GraphQL que ofrece muchas características para API modernas, especialmente una API de
GraphQL a prueba de futuro, con Envelope, todavía tenemos
GraphQL module,
GraphQL Scalar, acabamos de lanzar nuestro primer SaaS de registro de
GraphQL, que es de código abierto,
GraphQL Hive. Puedes ir a nuestro blog, tenemos muchos artículos que publicamos con mucha frecuencia, y especialmente tenemos algunos artículos que explican en detalle este concepto de fragment masking. ¡Muchas gracias!
Comments