Construyendo una Biblioteca de Componentes Personalizada - Rápido

Rate this content
Bookmark

Si tu empresa es como las que he trabajado, tienes aplicaciones con siete diseños de botones diferentes, tres datepickers diferentes y una extraña colección de dropdowns que pueden o no ser accesibles. Una tendencia creciente para lidiar con esta inconsistencia es construir un sistema de diseño personalizado o una biblioteca de componentes. Básicamente, construyes La Única Forma™ de crear un datepicker para tu organización y pides al resto de tu empresa que se ajuste a tu nuevo sistema. Pero construir una biblioteca de componentes viene con muchos desafíos, como, ¿qué frameworks o bibliotecas deberías usar (si es que alguna)? ¿Cómo te aseguras de que tus componentes sean accesibles? ¿Y cómo distribuyes tus componentes para que toda tu empresa los pueda usar? En esta charla relámpago aprenderás cómo construir una biblioteca de componentes rápidamente basándote en una biblioteca como Kendo UI. Aprenderás consejos y trucos sobre cómo empezar y ejecutar, cómo personalizar componentes y cómo distribuir componentes en toda tu organización.

This talk has been presented at JSNation Live 2021, check out the latest edition of this JavaScript Conference.

FAQ

Una biblioteca de componentes se refiere a una colección de controles de interfaz de usuario, que pueden variar desde botones y campos de entrada hasta componentes más complejos como selectores de fecha y autocompletados.

TJ argumenta que tener una biblioteca de componentes propia promueve la consistencia visual, tecnológica y de accesibilidad en toda la organización, ayudando a estandarizar los diseños y mejorar la usabilidad general.

TJ menciona que usar componentes específicos de un framework, como Angular, Vue o React, reduce el rendimiento y los costos ergonómicos comparado con los componentes agnósticos al framework, lo que resulta en una mayor productividad y éxito para los usuarios.

TJ sugiere que las empresas no deberían construir los componentes más complejos, como selectores de fecha y rejillas de datos, por sí mismas debido a la complejidad y al tiempo que esto implica, recomendando en su lugar usar bibliotecas existentes.

Recomienda configurar un entorno de desarrollo separado de las aplicaciones existentes, utilizar una aplicación de demostración para probar los componentes, y tener scripts para empaquetar y distribuir los componentes en la organización.

Debe buscar componentes que ofrezcan exhaustividad, buena accesibilidad, compatibilidad con el framework preferido y extensibilidad, para asegurar que los componentes puedan adaptarse y personalizarse fácilmente.

Crear envoltorios permite mantener la consistencia en toda la organización, facilitando la implementación de ajustes globales y asegurando que todos los componentes se adhieran a las normas y estilos internos.

TJ VanToll
TJ VanToll
8 min
09 Jun, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Hoy quiero hablarles sobre cómo construir bibliotecas de componentes personalizadas rápidamente. Cada empresa debería tener su propio conjunto estándar de controles de interfaz de usuario para lograr consistencia en diseño, tecnología y accesibilidad. Las empresas no deberían construir las partes más difíciles de esas bibliotecas ellas mismas, como date pickers y data grids. Pero como desarrollador de software, tu tiempo es valioso. Construir bibliotecas de componentes personalizadas es un mejor uso de tu tiempo que reinventar la rueda.

1. Building Custom Component Libraries

Short description:

Hoy quiero hablarles sobre cómo construir bibliotecas de componentes personalizadas rápidamente. Cada empresa debería tener su propio conjunto estándar de controles de interfaz de usuario para garantizar la consistencia en diseño, tecnología y accesibilidad. Las empresas no deberían construir las partes más difíciles de esas bibliotecas, como los selectores de fecha y las rejillas de datos. Estos componentes requieren una cuidadosa consideración de la accesibilidad, la compatibilidad móvil, la documentación y la extensibilidad.

Hola a todos. Soy TJ y hoy quiero hablarles sobre cómo construir bibliotecas de componentes personalizadas rápidamente. Y con bibliotecas de componentes me refiero básicamente a una serie de controles de interfaz de usuario que pueden ser desde botones y campos de entrada hasta cosas más complejas como selectores de fecha y autocompletados. Personalmente, he estado construyendo bibliotecas de componentes como esta durante mucho tiempo, tal vez demasiado. En el pasado, fui miembro del equipo de jQuery UI, si lo recuerdan. Todavía tengo este sombrero genial para mostrarlo. Y más recientemente, ahora soy miembro del equipo de KendoUI. Y debido a que he estado haciendo esto durante muchos años, he desarrollado una serie de opiniones o ideas interesantes sobre las bibliotecas de componentes que voy a comenzar a compartir, porque creo que les resultarán interesantes y útiles. Y luego pasaré a mostrar cómo pueden poner en práctica estas ideas y darles algunas recomendaciones sobre cómo pueden construir su propia component library. Para comenzar, mi primera opinión o idea interesante es que creo que cada empresa, creo que su empresa debería tener su propio conjunto estándar de controles de interfaz de usuario. Y la razón de esto es realmente la consistencia. Aplicar cierta consistencia visual para que en lugar de tener 30 diseños de botones diferentes, creen un botón en una component library que tenga la única forma correcta de construir botones para su organización. Pero también obtienen consistencia en términos de tecnología. Una component library es una forma de forzar a elegir un conjunto limitado de tecnologías que desean promover en toda su organización. También obtienen consistencia en términos de accesibilidad. La accesibilidad puede ser difícil, pero si pueden hacerlo bien dentro de los componentes de su biblioteca, pueden extender esos beneficios de accesibilidad a otras partes de su organización. Así que creo que cada empresa debería tener su propia biblioteca de componentes de interfaz de usuario. Y también creo que las empresas no deberían construir las partes más difíciles de esas bibliotecas por sí mismas. Y con componentes complejos aquí, no me refiero a cosas como campos de entrada y botones. Me refiero a las cosas más difíciles. Los selectores de fecha, las casillas de verificación, los autocompletados, las rejillas de datos, cosas así. Porque estos componentes son más difíciles de lo que pueden parecer al principio. Tomemos el selector de fecha, por ejemplo. Y no solo tienes que construir un calendario aquí. Cuando estás construyendo un componente reutilizable, debes tener en cuenta muchas otras cosas. ¿Cómo vas a hacer que esto sea accesible? ¿Cómo te asegurarás de que funcione como esperas en dispositivos móviles, que TypeScript funcione, que documentarás todo esto para que otras personas entiendan lo que hiciste y que sea extensible y todas estas cosas. Y estos son problemas solucionables. Tú, que estás viendo esto, puedo verlo a través de la cámara. Eres una persona inteligente. Estos son problemas

2. Component Libraries for Efficient UI Development

Short description:

Pero como desarrollador de software, tu tiempo es valioso. Construir bibliotecas de componentes personalizadas es un mejor uso de tu tiempo que reinventar la rueda. Las empresas deberían tener sus propias bibliotecas y utilizar componentes específicos del framework. La compatibilidad tiene un costo y generalmente es superado por el rendimiento, el tamaño del paquete y la ergonomía del framework. El equipo de Kendo UI ha construido bibliotecas separadas para diferentes frameworks. Comienza configurando un entorno de desarrollo y utiliza una biblioteca de referencia para widgets complejos. Busca exhaustividad, accesibilidad, componentes específicos del framework y extensibilidad.

puedes resolver. Pero como desarrollador de software, también tu tiempo es muy valioso. Tu tiempo casi siempre se invierte mejor en cosas que son únicas para lo que tu negocio está haciendo, en lugar de reinventar la rueda y resolver algunos de estos problemas de componentes de UI que han sido resueltos por muchas bibliotecas durante mucho tiempo. Es simplemente un mejor uso de tu tiempo. Así que creo que las empresas deberían tener sus propias bibliotecas de componentes. Creo que no deberías construir las partes más difíciles de estas bibliotecas tú mismo. Y también creo que deberías inclinarte hacia el uso de componentes específicos de un framework que te guste usar, como un framework como Angular, Vue y React, en lugar de un framework que sea agnóstico al framework y que intente funcionar en todos los casos. Ahora, esta es una opinión controvertida que comparto con Brandon Dale, un ex miembro del equipo de React. Creo que él expresó su explicación de manera más elegante, así que solo tomé una cita de él. Él dice que la compatibilidad siempre tiene un costo, y ese costo siempre va a ser algo como el rendimiento o el tamaño del paquete o la ergonomía del framework. Y en la mayoría de los casos, esas cosas van a ser más importantes que la compatibilidad en sí misma. Ahora, esto es algo en lo que creemos firmemente en el equipo de Kendo UI, tan firmemente, de hecho, que hemos construido cuatro bibliotecas de componentes separadas para diferentes frameworks. Y hacemos esto porque, como puedes imaginar, es bastante trabajo porque nuestros usuarios nos dicen consistentemente que tienen más éxito, son más productivos cuando utilizan componentes que están construidos específicamente para su framework de elección.

Así que creo que las empresas deberían tener su propio conjunto estándar de componentes de UI. Creo que no deberían construir las partes más difíciles de eso por sí mismas. Y creo que, en la mayoría de los casos, deberías inclinarte hacia el uso de componentes que estén construidos para tu framework, para tu cadena de herramientas de elección. Entonces, ¿cómo llevas estas cosas a la práctica? Bueno, recomiendo comenzar configurando un entorno de desarrollo que puedas utilizar para construir componentes en un lugar que esté fuera de cualquiera de tus aplicaciones existentes. Lo que me gusta hacer es tener un entorno donde pueda desarrollar los componentes y también tener una aplicación de demostración donde pueda probar esos componentes en una aplicación en ejecución y ver cómo funcionan. Y también tener algunos scripts que me permitan tomar mis componentes cuando estén listos, empaquetarlos, agruparlos y distribuirlos para que se puedan utilizar en toda mi organización. Y proporcionaré un enlace, si estás interesado en esto, al final de esta charla, para que si quieres ver mi flujo de trabajo preferido en detalle, puedas seguirlo. Pero comienza por tener este entorno de desarrollo. Y a partir de ahí, recomendaría tener una biblioteca de referencia a la que recurrir para algunos de estos widgets más complejos o cualquier cosa que no quieras construir tú mismo. Y para eso, buscaría algunas cosas en esta biblioteca de terceros. Comenzaría buscando exhaustividad. No quieres estar tomando componentes de cinco lugares diferentes en Internet y tratando de unirlos. Por lo general, tendrías una biblioteca que proporcione la mayor cantidad posible de esto. Quieres buscar accesibilidad porque, nuevamente, quieres incorporar una buena accesibilidad a tus componentes por defecto. Quieres buscar componentes específicos del framework o, al menos, algo que funcione muy bien con la cadena de herramientas que te gusta usar. Y también quieres buscar extensibilidad. Lo bueno de una biblioteca de componentes es que las personas encontrarán formas de usar tus componentes de muchas maneras diferentes. Por lo tanto, quieres encontrar componentes de terceros que sean muy adaptables, que puedas ajustar y personalizar y cambiar cosas en cada pequeño

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

Sistemas de Diseño: Caminando la Línea Entre Flexibilidad y Consistencia
React Advanced 2021React Advanced 2021
47 min
Sistemas de Diseño: Caminando la Línea Entre Flexibilidad y Consistencia
Top Content
The Talk discusses the balance between flexibility and consistency in design systems. It explores the API design of the ActionList component and the customization options it offers. The use of component-based APIs and composability is emphasized for flexibility and customization. The Talk also touches on the ActionMenu component and the concept of building for people. The Q&A session covers topics such as component inclusion in design systems, API complexity, and the decision between creating a custom design system or using a component library.
Hacia una Biblioteca Estándar para Runtimes de JavaScript
Node Congress 2022Node Congress 2022
34 min
Hacia una Biblioteca Estándar para Runtimes de JavaScript
Top Content
There is a need for a standard library of APIs for JavaScript runtimes, as there are currently multiple ways to perform fundamental tasks like base64 encoding. JavaScript runtimes have historically lacked a standard library, causing friction and difficulty for developers. The idea of a small core has both benefits and drawbacks, with some runtimes abusing it to limit innovation. There is a misalignment between Node and web browsers in terms of functionality and API standards. The proposal is to involve browser developers in conversations about API standardization and to create a common standard library for JavaScript runtimes.
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
React Summit 2022React Summit 2022
17 min
Composición vs Configuración: Cómo Construir Componentes Flexibles, Resilientes y a Prueba de Futuro
Top Content
Today's Talk discusses building flexible, resilient, and future-proof React components using composition and configuration approaches. The composition approach allows for flexibility without excessive conditional logic by using multiple components and passing props. The context API can be used for variant styling, allowing for appropriate styling and class specification. Adding variants and icons is made easy by consuming the variant context. The composition and configuration approaches can be combined for the best of both worlds.
Construyendo Bibliotecas de Componentes Multiplataforma para Web y Nativo con React
React Advanced 2021React Advanced 2021
21 min
Construyendo Bibliotecas de Componentes Multiplataforma para Web y Nativo con React
Top Content
This Talk discusses building cross-platform component libraries for React and React Native, based on a successful project with a large government-owned news organization. It covers the requirements for React Native knowledge, building cross-platform components, platform-specific components, styling, and the tools used. The Talk also highlights the challenges of implementing responsive design in React Native.
Caminando en la línea entre la flexibilidad y la consistencia en las bibliotecas de componentes
React Summit 2022React Summit 2022
27 min
Caminando en la línea entre la flexibilidad y la consistencia en las bibliotecas de componentes
This Talk discusses the comparison between Polaris and Material UI component libraries in terms of consistency and flexibility. It highlights the use of the action list pattern and the customization options available for the action list component. The Talk also emphasizes the introduction of a composite component to improve API flexibility. Additionally, it mentions the importance of finding the right balance between flexibility and consistency and the use of types to enforce specific child components.
Descubre si tu sistema de diseño es mejor que nada
React Summit 2022React Summit 2022
20 min
Descubre si tu sistema de diseño es mejor que nada
Building a design system without adoption is a waste of time. Grafana UI's adoption is growing consistently over time. The factors affecting design system adoption include the source mix changing, displacement of Homebrew components by Grafana UI, and the limitations of Grafana UI's current state. Measuring adoption is important to determine the success of a design system. The analysis of code through static code analysis tools is valuable in detecting and tracking component usage.

Workshops on related topic

Construye un Tablero Rico en Datos y Hermoso con la Rejilla de Datos de MUI X y Joy UI
React Summit 2023React Summit 2023
137 min
Construye un Tablero Rico en Datos y Hermoso con la Rejilla de Datos de MUI X y Joy UI
Top Content
WorkshopFree
Sam Sycamore
Siriwat (Jun) Kunaporn
2 authors
Aprende cómo utilizar el ecosistema completo de MUI para construir un tablero de gestión de proyectos hermoso y sofisticado en una fracción del tiempo que tomaría construirlo desde cero. En particular, veremos cómo integrar la Rejilla de Datos de MUI X con Joy UI, nuestra biblioteca de componentes más nueva y hermana del estándar de la industria Material UI.
Tabla de contenidos:- Presentando nuestro proyecto y herramientas- Configuración de la aplicación e instalación del paquete- Construcción del tablero- Prototipado, estilos y temas - Características de Joy UI- Filtrado, ordenación, edición - Características de la Rejilla de Datos- Conclusión, pensamientos finales, P&R
¿Deberíamos tener lógica de negocio en la interfaz de usuario?
JSNation 2022JSNation 2022
148 min
¿Deberíamos tener lógica de negocio en la interfaz de usuario?
WorkshopFree
Samuel Pinto
Samuel Pinto
¿Cuántas veces has dicho o escuchado 'esta es lógica de negocio, no debería estar aquí'?En este masterclass, crearemos una aplicación frontend moderna utilizando patrones antiguos y aprenderás cómo construir aplicaciones que tengan una interfaz de usuario y servicios desacoplados.Comenzaremos con una aplicación React que tiene toda su lógica en la interfaz de usuario. Luego, paso a paso, extraeremos las reglas y operaciones para alcanzar ese punto óptimo de independencia.
Aprende a utilizar Composables: La navaja suiza de los desarrolladores de Vue
Vue.js Live 2024Vue.js Live 2024
163 min
Aprende a utilizar Composables: La navaja suiza de los desarrolladores de Vue
Workshop
Juan Andrés Núñez Charro
Juan Andrés Núñez Charro
Los Composables (funciones de composición) son funciones con estado/sin estado que pueden aprovechar la API de reactividad de Vue, desacoplándola de los componentes.Este cambio de perspectiva abre la posibilidad de abordar escenarios comunes de una manera nueva y creativa. En este masterclass, aprenderás cómo resolver problemas típicos que enfrenta cada desarrollador de Vue, utilizando composables:
- Almacenamiento de datos;- Comunicación entre componentes;- Funciones de utilidad (DOM, API, etc);Y más.