Medición de la Cobertura del Sistema de Diseño React

Rate this content
Bookmark

Los sistemas de diseño se están volviendo cada vez más populares en el desarrollo de front-end moderno. Sin embargo, medir el uso y la cobertura de estos sistemas de diseño a menudo es un desafío. En esta charla relámpago, hablaré sobre una herramienta en la que estamos trabajando que utiliza react-scanner y Árbol de Sintaxis Abstracta (AST) con scripts personalizados para generar datos de uso de componentes para un sistema de diseño React.

La charla cubrirá cómo generamos estos datos y cómo se representan en un tablero para proporcionar información valiosa sobre la cobertura del sistema de diseño.

- Introducción a react-scanner
- Medición del Uso de Componentes
- Identificación de elementos HTML nativos y Componentes Estilizados
- Mostrando la estructura del Árbol de la Página en términos de Componentes
- Destacando Patrones Anti
- Beneficios / Casos de uso para esta herramienta

FAQ

El sistema de diseño 4.0 es una actualización del sistema de diseño 3.0 de Fabric Agency, construido con TypeScript para mejorar la consistencia y reducir las personalizaciones excesivas. Se introdujo para abordar los problemas de inconsistencia entre aplicaciones, proporcionando un sistema más restrictivo y soportado.

Fabric Agency utiliza una arquitectura basada en micro-front-end, empleando tecnologías como single-SPA, REACT, TypeScript y componentes de estilo para la gestión de sus tableros SAS.

La migración del diseño-system-3.0 al 4.0 busca abordar problemas de consistencia y personalización excesiva en las aplicaciones, mediante un sistema de diseño más estructurado y coherente que restrinja las variaciones innecesarias de los componentes.

React scanner es una herramienta que analiza estáticamente el código para extraer el uso de componentes y propiedades en React. Fabric Agency lo utiliza para medir el uso de componentes en sus sistemas de diseño, lo que ayuda en la toma de decisiones basadas en datos sobre estrategias de componentes.

AST (Árbol de Sintaxis Abstracta) es una representación en árbol del código fuente de un programa, utilizado para analizar y modificar el código de manera programática. Es relevante en el desarrollo front-end para herramientas como react-scanner, que lo usa para analizar componentes y propiedades en aplicaciones React.

Los anti-patrones identificados incluyen el uso inadecuado de colores codificados en lugar de tokens de diseño y el uso de elementos HTML básicos en lugar de componentes del sistema de diseño. Estos se resaltan en un panel de control para que los equipos puedan tomar acciones correctivas y mejorar la calidad del código.

Karan Kiri
Karan Kiri
19 min
15 Nov, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La Charla discute la cobertura mayoritaria del sistema Reduzon y el viaje de migración de design-system-3.0 a design-system-4.0. Presenta React scanner, una herramienta que analiza estáticamente el código y extrae el uso de componentes y prop de React. La Charla explora las opciones y funciones personalizadas en React scanner, así como los procesadores y AST utilizados por la herramienta. También discute la exploración de AST utilizando astexplorer.net y muestra el uso de react-scanner. Finalmente, menciona la importancia de la reestructuración de componentes e introduce Omelet, una herramienta para análisis de componentes.

1. Introducción a la Cumbre de React

Short description:

Hola a todos, mi nombre es Karan. Hoy voy a hablar sobre la cobertura mayoritaria del sistema Reduzon. Actualmente estoy trabajando como ST2 front-end en Fabric Agency. Tenemos nuestro propio tablero donde los minoristas pueden administrar sus productos, inventarios, clientes, cupones y suscripciones. Estábamos en el viaje de construir nuestro sistema de diseño en Typescript, que era design-system-4.0. Definamos el problema donde estamos en el viaje de migrar de design-system-3.0 a design-system-4.0. Nosotros, como equipo de plataforma, queríamos medir el uso de nuestro componente y obtener algunos datos para tomar decisiones basadas en datos sobre nuestras estrategias de componentes. Empecemos. Primero que nada, si eres ingeniero, te asignan cualquier tarea y tratas de buscar en Google todo lo posible. Pero si eres desarrollador, vas a chatgpd, escribes tu pregunta y esperas que produzca la salida, pero no lo hizo. Pero después de luchar durante unos días, pidiendo ayuda a la gente en Twitter, varias plataformas, pude encontrar este paquete NPM llamado React scanner. Entonces, ¿qué hace React scanner? React scanner es básicamente una herramienta que analiza estáticamente tu código dado y extrae el uso del componente y prop de React.

Hola a todos, mi nombre es Karan, bienvenidos a la Cumbre de React. Hoy voy a hablar sobre la cobertura mayoritaria del sistema Reduzon.

Para darte una introducción sobre mí, actualmente estoy trabajando como ST2 front-end en Fabric Agency, que es una startup de e-commerce basada en EE.UU. Anteriormente he trabajado con startups como Razorpay y Google Foods en India.

Tengamos un poco de contexto antes de definir el problema. Hablaré sobre lo que normalmente trato en Fabric en mi trabajo diario. Tenemos nuestro propio tablero, un tablero SAS, donde los minoristas pueden administrar sus productos, inventarios, clientes, cupones y suscripciones. Es una arquitectura basada en micro-front-end. Usamos single-SPA, REACT, Typescript, y componentes de estilo. Estábamos en el viaje de construir nuestro sistema de diseño en Typescript, que era diseño-system-4.0. Teníamos nuestro antiguo sistema de diseño, que estaba en Vs3. Fue construido usando JavaScript. Era muy flexible, no un sistema de diseño, sino una biblioteca de componentes o kit de UI. Era muy flexible. Así que la gente terminó creando muchas personalizaciones y muchas variaciones del mismo componente, a su vez, lo que carecía de consistencia en nuestras aplicaciones. Así que todas nuestras aplicaciones empezaron a parecer que pertenecían a una plataforma diferente en su totalidad.

Para resolver todos los problemas que teníamos con diseño-system-3.0, decidimos construir nuestro diseño-system-4.0 usando TypeScript. Era flexible, pero tenía restricciones de diseño con respecto a nuestro sistema de diseño. Es muy consistente, tiene todo el soporte, todas las últimas características como tokens, espaciado, color, tema, que puedes usar.

Definamos el problema donde estamos en el viaje de migrar de diseño-system-3.0 a diseño-system-4.0. Nosotros, como equipo de plataforma, queríamos medir el uso de nuestro componente y obtener algunos datos para tomar decisiones basadas en datos sobre nuestras estrategias de componentes. Así que algunos puntos de datos que queríamos capturar eran el uso de diseño-system-3.0, el uso de diseño-system-4.0, cualquier elemento nativo de HTML que los equipos de dominio estuvieran usando, cualquier componente de estilo que estuvieran usando construido sobre elementos nativos de HTML, o cualquier componente existente de diseño-system-3.0. También queríamos tener una estructura de árbol de cualquier página o diseño para que podamos visualizar cómo nuestros diferentes componentes se están utilizando en combinación con otros componentes. Y también queríamos destacar algunos anti-patrones que podemos recoger usando los datos.

Así que empecemos. Primero que nada, si eres ingeniero, te asignan cualquier tarea y tratas de buscar en Google todo lo posible. Ves si hay alguna solución existente que puedas usar de inmediato. Pero si eres desarrollador, vas a chatgpd, escribes tu pregunta y esperas que produzca la salida, pero no lo hizo. Pero después de luchar durante unos días, pidiendo ayuda a la gente en Twitter, varias plataformas, pude encontrar este paquete NPM llamado React scanner. Entonces, ¿qué hace React scanner? React scanner es básicamente una herramienta que analiza estáticamente tu código dado y extrae el uso del componente y prop de React.

2. Opciones y Funciones Personalizadas en React Scanner

Short description:

React scanner admite varias opciones como definir el directorio raíz, el punto de inicio de rastreo, excluir archivos específicos e incluir subcomponentes. También permite generar datos para bibliotecas específicas y proporciona funciones personalizadas y procesadores para información consolidada.

Entonces, React scanner admite las siguientes opciones que puedes dar. Básicamente, cuando ejecutas este React scanner en una base de código dada, tienes algunas opciones. La primera es el directorio raíz. Puedes definir desde dónde es tu directorio raíz, por lo que comenzará a escanear desde ese directorio raíz. También puedes definir desde dónde quieres empezar a rastrear. Puedes excluir cualquiera de los archivos en los que no quieras ejecutar un escaneo. También puedes definir el patrón de bloque para incluir o excluir archivos específicos.

También puedes incluir subcomponentes, como si no quisieras informar todos los componentes, entonces también puedes definir usando componentes. De manera similar, para subcomponentes también. Si quieres generar los datos solo para bibliotecas específicas, digamos que quieres obtener la información de una biblioteca, como digamos qué componentes están usando de Material.ai, entonces puedes definir tus bibliotecas particulares también. Así que generará solo los datos para esa biblioteca particular que has definido. Además, hay algunas funciones personalizadas que puedes pasar. Algunas de ellas son como getComponent, getProperValue y procesadores. Los procesadores son básicamente funciones que se ejecutan en la parte superior de los datos brutos y generará información consolidada para ti.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

El Potencial Caprichoso de los Marcos de Trabajo de JavaScript
React Summit US 2023React Summit US 2023
28 min
El Potencial Caprichoso de los Marcos de Trabajo de JavaScript
Top Content
Cuando se trata de construir interfaces caprichosas, React es un aliado sorprendentemente capaz. En esta charla, te mostraré cómo uso React para orquestar interacciones complejas al profundizar en algunos ejemplos de mi blog.
Diseño Dirigido por Dominio con Aplicaciones Vue
Vue.js London 2023Vue.js London 2023
14 min
Diseño Dirigido por Dominio con Aplicaciones Vue
Top Content
Introducción al Diseño Dirigido por Dominio- ¿Qué es DDD?- Principios clave de DDD- Beneficios de usar DDD en el desarrollo de aplicaciones webModelado de Dominio en Aplicaciones Vue 3- Cómo diseñar e implementar modelos de dominio en Vue 3- Estrategias para integrar la lógica de dominio con el modelo de datos reactivo de Vue y la arquitectura basada en componentesMejores Prácticas para Implementar DDD en Vue 3- Estrategias para organizar el código de una manera que siga los principios de DDD- Técnicas para reducir el acoplamiento entre la lógica de dominio y la lógica de la aplicación- Consejos para probar y depurar la lógica de dominio en las aplicaciones Vue 3
Patrones Probados de Pinia
Vue.js London 2023Vue.js London 2023
20 min
Patrones Probados de Pinia
Top Content
Con la nueva y mejorada biblioteca de gestión de estado de Vue, Pinia, obtenemos una herramienta mucho más modular. Siendo más flexible, más ligera y sin las Mutaciones de Vuex, Pinia nos presenta más oportunidades para ser creativos, para bien o para mal, con la arquitectura de nuestra aplicación y cómo se lleva a cabo y se organiza la gestión del estado dentro de ella.Esta charla explora algunas mejores prácticas aprobadas por @posva y patrones de diseño arquitectónico a considerar cuando se utiliza Pinia en producción.
Patrones de Diseño de Componentes
Vue.js London 2023Vue.js London 2023
18 min
Patrones de Diseño de Componentes
¿Cómo se escribe un buen componente? En esta charla exploraremos varios patrones diferentes para escribir componentes mejores. Analizaremos técnicas para simplificar nuestros componentes, hacerlos más fáciles de entender y aprovechar al máximo los componentes que ya tenemos.
Construyendo el Generador de Código de Widgets de Figma
React Advanced Conference 2022React Advanced Conference 2022
19 min
Construyendo el Generador de Código de Widgets de Figma
Los widgets son objetos personalizados e interactivos que se colocan en un archivo de Figma o Figjam para ampliar la funcionalidad y hacer todo un poco más divertido. Se escriben en un estilo declarativo similar a los componentes de React, que se traduce para convertirse en un nodo en el lienzo. ¿Entonces se puede hacer lo contrario, del lienzo al código? ¡Sí! Discutiremos cómo utilizamos la API pública de complementos de Figma para generar código de widgets a partir de un archivo de diseño y crearemos un widget funcional juntos utilizando esto.
¿Quieres ser un desarrollador de videojuegos independiente?
JS GameDev Summit 2022JS GameDev Summit 2022
30 min
¿Quieres ser un desarrollador de videojuegos independiente?
¿Quieres ser un desarrollador de videojuegos independiente? Probablemente tengas una idea de cómo es el desarrollo de videojuegos independiente. Mi trabajo es asegurarte de que estás equivocado. Voy a hablar sobre los conceptos erróneos en torno al desarrollo de videojuegos independiente y todo lo que necesitas saber antes de adentrarte en él.