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.

8 min
09 Jun, 2021

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.

Available in English

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

3. Creando Envoltorios para la Consistencia

Short description:

Recomiendo usar una biblioteca de terceros de referencia para componentes complejos y crear envoltorios para una implementación consistente. Comienza configurando un entorno de desarrollo fuera de tus aplicaciones. Elige una biblioteca de referencia para componentes complejos y crea envoltorios para mantener la consistencia. Tu empresa debería tener un conjunto estándar de componentes de UI. Visita bitly/components-fast para obtener más información.

pieza de ellos. Así que recomendaría tener esta biblioteca de terceros, esta biblioteca de terceros de referencia. Y luego recomendaría crear envoltorios de cualquiera de los componentes que desees usar de estos componentes de terceros. Y la razón de esto, y solo mostraremos un ejemplo. Entonces, si quieres usar el selector de fechas de react de Kendo. Bueno, en lugar de animar a los desarrolladores a usar directamente la API del selector de fechas de react de Kendo, en su biblioteca de componentes, podrías crear un envoltorio de ese selector de fechas con tu propia API. Y la razón de esto es nuevamente, para mantener la consistencia, porque tienes este envoltorio, ahora tienes un lugar donde puedes implementar consistentemente cosas para los selectores de fechas en toda tu organización. Entonces, digamos que tus diseñadores vuelven y dicen, `Oye, necesitamos que todos nuestros selectores de fechas tengan un pequeño ajuste visual`, podemos decir, `Oh, hey, tengo este envoltorio. Puedo aplicar consistentemente este nombre de clase. Puedo hacer algunos ajustes de CSS. Y todavía tengo este control donde puedo realizar cambios consistentes en este componente en toda mi organización sin tener que construir la parte difícil de estos componentes ellos mismos. Entonces, para resumir nuevamente, recomendaría comenzar simplemente configurando un entorno de desarrollo, fuera de tus aplicaciones existentes. A partir de ahí, elige una biblioteca de referencia para construir o para traer componentes de terceros más complejos. Y luego crea envoltorios de estos componentes de terceros que traes. Y realmente, si solo sacas una cosa de esta charla, en general, diría que tu empresa debería tener un conjunto estándar de componentes de UI. Hay muchos beneficios, pero está totalmente bien, incluso preferible, construir gran parte de esa funcionalidad sobre una biblioteca existente. Espero que esto te haya parecido interesante. Si es así, si quieres aprender más, puedes ir a bitly/components-fast. Allí tengo el entorno de desarrollo completo del que hablé en una diapositiva anterior, así como algunos artículos que explican en detalle los argumentos que presenté aquí hoy. Así que mi nombre es TJ Ventol. Siéntete libre de contactarme en Twitter desk si tienes alguna pregunta o hacer preguntas a través de la conferencia también. Gracias.

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

React Advanced Conference 2021React Advanced Conference 2021
47 min
Design Systems: Walking the Line Between Flexibility and Consistency
Top Content
Design systems aim to bring consistency to a brand's design and make the UI development productive. Component libraries with well-thought API can make this a breeze. But, sometimes an API choice can accidentally overstep and slow the team down! There's a balance there... somewhere. Let's explore some of the problems and possible creative solutions.
React Summit 2022React Summit 2022
17 min
Composition vs Configuration: How to Build Flexible, Resilient and Future-proof Components
Top Content
There are many ways of authoring components in React, and doing it right might not be that easy, especially when components get more complex. In this talk, you will learn how to build future-proof React components. We will cover two different approaches to building components - Composition and Configuration, to build the same component using both approaches and explore their advantages and disadvantages.
React Advanced Conference 2021React Advanced Conference 2021
21 min
Building Cross-Platform Component Libraries for Web and Native with React
Top Content
Building products for multiple platforms such as web and mobile often requires separate code-based despite most of the components being identical in look and feel. Is there a way where we could use shared React component library on different platforms and save time? In this presentation I'll demonstrate one way to build truly cross-platform component library with a unique approach of using React & React Native in combination.
React Summit 2022React Summit 2022
27 min
Walking the Line Between Flexibility and Consistency in Component Libraries
Design systems aim to bring consistency to a brand's design and make the UI development productive. Component libraries with well thought API can make this a breeze. But, sometimes an API choice can accidentally overstep and slow the team down! There's a balance there... somewhere. Let's explore some of the problems and possible creative solutions.
React Summit 2022React Summit 2022
20 min
Find Out If Your Design System Is Better Than Nothing
Building a design system is not enough. Your dev team has to prefer it over one-off components and third-party libraries. Otherwise, the whole effort is a waste of time. Learn how to use static code analysis to measure if your design system wins over the internal competition and data-driven ways to improve your position.

Workshops on related topic

React Summit 2023React Summit 2023
137 min
Build a Data-Rich Beautiful Dashboard With MUI X's Data Grid and Joy UI
Top Content
WorkshopFree
Learn how to put MUI’s complete ecosystem to use to build a beautiful and sophisticated project management dashboard in a fraction of the time that it would take to construct it from scratch. In particular, we’ll see how to integrate the MUI X Data Grid with Joy UI, our newest component library and sibling to the industry-standard Material UI.
Table of contents:- Introducing our project and tools- App setup and package installation- Constructing the dashboard- Prototyping, styling, and themes - Joy UI features- Filtering, sorting, editing - Data Grid features- Conclusion, final thoughts, Q&A
JSNation 2022JSNation 2022
148 min
Should we have business logic in the UI?
WorkshopFree
How many times did you say or hear “this is business logic, it should not be here”?In this workshop, we will create a modern frontend application using old patterns and you will learn how to build apps that have decoupled UI and services.We will start with a React application that has its whole logic in the UI. Then step by step we will extract the rules and operations to hit that sweet spot of independence.