Mejorando la Felicidad del Desarrollador con Preview.js

Rate this content
Bookmark

Un vistazo a Preview.js, una extensión de código abierto para Visual Studio Code, IntelliJ y WebStorm que te permite previsualizar componentes individuales de React al instante, actualizados mientras escribes.


This talk has been presented at React Summit 2022, check out the latest edition of this React Conference.

FAQ

Un ingeniero de felicidad del desarrollador es un ingeniero de software que se enfoca en mejorar la eficiencia y satisfacción de otros ingenieros a través de la refactorización, la corrección de pruebas inestables y la aceleración de la integración continua, además de desarrollar herramientas para agilizar el trabajo de sus colegas.

Preview JS es una herramienta desarrollada para permitir una vista previa en tiempo real de componentes, facilitando así la programación y el diseño en frameworks como React, Vue y Solid. Está disponible en VS Code e IntelliJ, y ayuda a los desarrolladores a ver cómo los cambios en el código afectan instantáneamente a los componentes.

Si una API elimina los elementos no disponibles del menú sin indicarlo claramente, puede causar confusión entre los usuarios, quienes podrían pensar que el restaurante ha eliminado permanentemente estos elementos. La solución es modificar la API para que muestre los elementos como 'no disponibles' en lugar de eliminarlos.

Storybook es una herramienta que actúa como una galería para componentes de UI, donde cada componente puede tener varias 'historias' que muestran diferentes estados o versiones del componente. Es útil para documentar y diseñar componentes de manera aislada, asegurando que cada variante esté bien definida y sea fácil de revisar.

Preview.js proporciona una actualización en vivo de los componentes a medida que se ajustan sus propiedades, lo que permite a los desarrolladores ver y ajustar cambios en tiempo real sin necesidad de recargar o recompilar el código. Esto mejora la eficiencia y facilita la iteración rápida durante el desarrollo.

Storybook y Preview.js son complementarios; mientras Storybook ayuda en la documentación y organización de componentes UI, Preview.js permite la visualización en tiempo real de cambios en los componentes. Ambas herramientas pueden ser utilizadas juntas para maximizar la eficiencia en el desarrollo y el diseño de interfaces.

François Wouts
François Wouts
21 min
21 Jun, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Francois, un ingeniero de felicidad para desarrolladores, habla sobre los desafíos de los builds lentos y su impacto en la productividad. Explora la implementación de mostrar elementos de menú no disponibles en una aplicación de entrega de comida y demuestra el uso de Storybook para el diseño de componentes. Francois presenta Preview.js, una herramienta para previsualizar componentes de React, Vue y Solid, y explica cómo simplifica el proceso de desarrollo. También destaca los beneficios de usar PrivyJS con Storybook y VIT para un desarrollo más rápido y eficiente.

1. Introducción a la Ingeniería de Felicidad del Desarrollador

Short description:

Hola, soy Francois, un ingeniero de felicidad del desarrollador. Trabajo en refactorizar, arreglar pruebas y crear herramientas para hacer que los ingenieros sean más rápidos. Hoy hablaré sobre Preview JS y los desafíos de las compilaciones lentas y su impacto en la productividad.

Hola, mi nombre es Francois. Soy un ingeniero de felicidad del desarrollador de Sydney, Australia. Es posible que te estés preguntando, ¿qué es un ingeniero de felicidad del desarrollador? Lo que significa es que soy un ingeniero de software regular a quien le gusta trabajar en refactorizar cosas o arreglar pruebas inestables, o hacer que la integración continua sea más rápida, pero a veces también se trata de crear nuevas herramientas para hacer que otros ingenieros sean más rápidos. Una de estas herramientas se llama Preview JS, y voy a hablar de eso ahora. Es posible que estés familiarizado con este cómic de XKCD. Creo que fue lanzado hace bastante tiempo, pero aún es relevante hoy en día. Te daré unos segundos para que lo leas. Esto, creo, fue especialmente relevante en los días en que muchos programadores usaban C++ u otro lenguaje realmente lento, donde tenías que esperar cinco minutos, tal vez 10 minutos, tal vez incluso una hora para que tu código se volviera a compilar. No es tan relevante hoy en día para JavaScript, ¿o sí? En realidad, no es tan inusual en estos días trabajar en una base de código grande que use tal vez una versión antigua de Webpack o una versión mal configurada de Webpack, que tarda un par de minutos en ejecutar la compilación. Tal vez incluso peor, tal vez tengas que esperar 30 segundos cada vez que haces un cambio en el archivo, lo cual, si lo piensas, cuando sumas eso durante un día cada vez que quieres ver el impacto de un cambio de código que hiciste, eso es bastante tiempo que se pasa Y no solo es esperar, sino que también interrumpe tu flujo, así que generalmente vas a cambiar de contexto, vas a empezar a hacer otra cosa y luego vuelves y simplemente, has perdido la noción de lo que estabas tratando de hacer o lo que sea que tenías en mente simplemente no está allí. Y no es muy bueno para la productividad o para la felicidad en la ingeniería.

2. Manejo de elementos de menú no disponibles

Short description:

Tomemos el ejemplo de una aplicación de entrega de comida llamada Humbry. Los usuarios han dado retroalimentación de que se sorprenden cuando el menú no contiene los elementos esperados. Actualmente, si un elemento no está disponible, se elimina por completo del menú. Sin embargo, los diseñadores de la aplicación han recibido una solicitud de función para mostrar elementos no disponibles pero dejar claro que no están disponibles. La primera forma de implementar esto es ejecutando la aplicación localmente.

Entonces, tomemos este ejemplo, esta es una aplicación de entrega de comida que llamé Humbry y es realmente solo para el propósito de esta presentación. Aquí tenemos varios restaurantes y digamos que tengo antojo de crepes francesas, así que voy a decir crepes. Bien, hay un restaurante llamado Crêperie François y voy a ir allí y revisar. Bien. Hay algunas cosas realmente deliciosas, plátano caramelizado y chocolate. Eso suena bien. Naranja fresca y confitada. Bien. Eso suena bien. Bien. Eso también. Bien. Voy a pedir todo, tal vez dos de cada uno. Genial. Esto es más o menos lo que esperarías de una aplicación de entrega de comida. Y estamos en los primeros días de lanzamiento para los usuarios. Y la primera retroalimentación que recibimos es que a algunos usuarios les sorprende que a veces el menú no contenga los elementos que esperaban. Esto se debe a que a veces, si un elemento no está disponible, actualmente la API simplemente lo elimina del menú. Entonces, digamos que este restaurante se quedó sin pollo. Este primer elemento, pollo Kung Pao, en realidad estará completamente ausente. Lo cual sorprende a los usuarios, porque piensan, ¿este restaurante eliminó esto del menú para siempre? ¿Debería boicotear completamente este restaurante porque eliminaron mi elemento favorito? No, ese no es el caso. Simplemente no está disponible hoy. Y realmente esa es nuestra responsabilidad como diseñadores de esta aplicación, hacerlo claro. Entonces, en cambio, recibimos una solicitud de función de nuestro gerente de producto, que dice que ahora deberíamos mostrar los elementos de menú no disponibles, pero dejar claro que no están disponibles. Así que sabes cómo aquí tenemos este contador, en lugar de este contador, simplemente diremos, no disponible hoy, ¿verdad? Esto debería ser mucho menos confuso para los usuarios. Por supuesto, la primera forma en que podemos implementar esto es ejecutando la aplicación localmente. ¿De acuerdo? Así que vamos a ir a

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

Depuración Web Moderna
JSNation 2023JSNation 2023
29 min
Depuración Web Moderna
Top Content
This Talk discusses modern web debugging and the latest updates in Chrome DevTools. It highlights new features that help pinpoint issues quicker, improved file visibility and source mapping, and ignoring and configuring files. The Breakpoints panel in DevTools has been redesigned for easier access and management. The Talk also covers the challenges of debugging with source maps and the efforts to standardize the source map format. Lastly, it provides tips for improving productivity with DevTools and emphasizes the importance of reporting bugs and using source maps for debugging production code.
El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
Remix Flat Routes – Una Evolución en el Enrutamiento
Remix Conf Europe 2022Remix Conf Europe 2022
16 min
Remix Flat Routes – Una Evolución en el Enrutamiento
Top Content
Remix Flat Routes is a new convention that aims to make it easier to see and organize the routes in your app. It allows for the co-location of support files with routes, decreases refactor and redesign friction, and helps apps migrate to Remix. Flat Folders convention supports co-location and allows importing assets as relative imports. To migrate existing apps to Flat Routes, use the Remix Flat Routes package's migration tool.
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
pnpm is a fast and efficient package manager that gained popularity in 2021 and is used by big tech companies like Microsoft and TikTok. It has a unique isolated node module structure that prevents package conflicts and ensures each project only has access to its own dependencies. pnpm also offers superior monorepo support with its node module structure. It solves the disk space usage issue by using a content addressable storage, reducing disk space consumption. pnpm is incredibly fast due to its installation process and deterministic node module structure. It also allows file linking using hardlinks instead of symlinks.
Cómo hacer un juego web tú solo
JS GameDev Summit 2023JS GameDev Summit 2023
27 min
Cómo hacer un juego web tú solo
This talk guides you on how to make a web game by yourself, emphasizing the importance of focusing on tasks that interest you and outsourcing the rest. It suggests choosing a game engine that allows distribution on the web and aligns with your understanding and enjoyment. The talk also highlights the significance of finding fun in the creative process, managing scope, cutting features that don't align with the game's direction, and iterating to the finish line. It concludes by discussing the options for publishing the game on the web and leveraging unique web features.
Despliegue Atómico para Hipsters de JavaScript
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
Despliegue Atómico para Hipsters de JavaScript
This Talk discusses atomic deployment for JavaScript and TypeScript, focusing on automated deployment processes, Git hooks, and using hard links to copy changes. The speaker demonstrates setting up a bare repository, configuring deployment variables, and using the post-receive hook to push changes to production. They also cover environment setup, branch configuration, and the build process. The Talk concludes with tips on real use cases, webhooks, and wrapping the deployment process.

Workshops on related topic

React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Dominando conceptos avanzados en TypeScript
React Summit US 2023React Summit US 2023
132 min
Dominando conceptos avanzados en TypeScript
Top Content
Featured WorkshopFree
Jiri Lojda
Jiri Lojda
TypeScript no es solo tipos e interfaces. Únete a esta masterclass para dominar características más avanzadas de TypeScript que harán tu código a prueba de balas. Cubriremos tipos condicionales y notación de inferencia, cadenas de plantillas y cómo mapear sobre tipos de unión y propiedades de objetos/arrays. Cada tema se demostrará en una aplicación de muestra que se escribió con tipos básicos o sin tipos en absoluto y juntos mejoraremos el código para que te familiarices más con cada característica y puedas llevar este nuevo conocimiento directamente a tus proyectos.
Aprenderás:- - ¿Qué son los tipos condicionales y la notación de inferencia?- ¿Qué son las cadenas de plantillas?- Cómo mapear sobre tipos de unión y propiedades de objetos/arrays.
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
React Summit 2024React Summit 2024
92 min
Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web
Featured Workshop
Vivek Nayyar
Vivek Nayyar
Sumérgete en el mundo de la IA con nuestro masterclass interactivo diseñado específicamente para desarrolladores web. "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" ofrece una oportunidad única para cerrar la brecha entre la IA y el desarrollo web. A pesar de la prominencia de Python en el desarrollo de IA, el vasto potencial de JavaScript sigue siendo en gran medida inexplorado. Este masterclass tiene como objetivo cambiar eso.A lo largo de esta sesión práctica, los participantes aprenderán cómo aprovechar LangChain, una herramienta diseñada para hacer que los modelos de lenguaje grandes sean más accesibles y útiles, para construir agentes de IA dinámicos directamente dentro de entornos JavaScript. Este enfoque abre nuevas posibilidades para mejorar las aplicaciones web con funciones inteligentes, desde el soporte al cliente automatizado hasta la generación de contenido y más.Comenzaremos con los conceptos básicos de LangChain y los modelos de IA, asegurando una base sólida incluso para aquellos nuevos en IA. A partir de ahí, nos sumergiremos en ejercicios prácticos que demuestran cómo integrar estas tecnologías en proyectos reales de JavaScript. Los participantes trabajarán en ejemplos, enfrentando y superando los desafíos de hacer que la IA funcione sin problemas en la web.Este masterclass es más que una experiencia de aprendizaje; es una oportunidad de estar a la vanguardia de un campo emergente. Al final, los asistentes no solo habrán adquirido habilidades valiosas, sino que también habrán creado funciones mejoradas con IA que podrán llevar a sus proyectos o lugares de trabajo.Ya seas un desarrollador web experimentado curioso acerca de la IA o estés buscando expandir tus habilidades en áreas nuevas y emocionantes, "Masterclass: Integrando LangChain con JavaScript para Desarrolladores Web" es tu puerta de entrada al futuro del desarrollo web. Únete a nosotros para desbloquear el potencial de la IA en tus proyectos web, haciéndolos más inteligentes, interactivos y atractivos para los usuarios.
De Todo App a B2B SaaS con Next.js y Clerk
React Summit US 2023React Summit US 2023
153 min
De Todo App a B2B SaaS con Next.js y Clerk
WorkshopFree
Dev Agrawal
Dev Agrawal
Si eres como yo, probablemente tengas un millón de ideas para proyectos secundarios, algunas de las cuales incluso podrían hacerte ganar dinero como un micro SaaS, o podrían resultar ser la próxima startup de mil millones de dólares. Pero, ¿cómo sabes cuáles? ¿Cómo pasas de una idea a un producto funcional que puede ser puesto en manos de clientes que pagan sin renunciar a tu trabajo e invirtiendo todo tu tiempo y dinero en ello? ¿Cómo pueden competir tus proyectos secundarios en solitario con las aplicaciones construidas por enormes equipos y grandes empresas?
Construir productos SaaS ricos viene con desafíos técnicos como infraestructura, escalabilidad, disponibilidad, seguridad y subsistemas complicados como autenticación y pagos. Por eso, a menudo son los gigantes tecnológicos ya establecidos quienes pueden construir y operar productos de este tipo de manera razonable. Sin embargo, una nueva generación de devtools está permitiendo a los desarrolladores construir fácilmente soluciones completas que aprovechan la mejor infraestructura en la nube disponible, y ofrecen una experiencia que te permite iterar rápidamente en tus ideas por un bajo costo de $0. Se llevan todos los desafíos técnicos de construir y operar productos de software para que solo tengas que pasar tu tiempo construyendo las características que tus usuarios quieren, dándote una oportunidad razonable de competir contra el mercado al mantenerte increíblemente ágil y receptivo a las necesidades de los usuarios.
En esta masterclass de 3 horas comenzarás con una simple aplicación de gestión de tareas construida con React y Next.js y la convertirás en un producto SaaS completamente funcional y escalable integrando una base de datos escalable (PlanetScale), autenticación multi-tenant (Clerk), y pagos basados en suscripción (Stripe). También aprenderás cómo los principios del desarrollo de software ágil y el diseño impulsado por el dominio pueden ayudarte a construir productos rápidamente y de manera rentable, y competir con las soluciones existentes.
Construyendo Pinia desde cero
Vue.js Live 2024Vue.js Live 2024
70 min
Construyendo Pinia desde cero
Workshop
Eduardo San Martin Morote
Eduardo San Martin Morote
Sumergámonos en cómo funciona Pinia bajo el capó construyendo nuestro propio `defineStore()`. Durante este masterclass cubriremos algunos conceptos avanzados de Vue como la inyección de dependencias y los scopes de efectos. Esto te dará una mejor comprensión de la API de Composición de Vue.js y Pinia. Requisitos: experiencia en la construcción de aplicaciones con Vue y su API de Composición.
Masterclass de Desarrollo Web 3D con el ecosistema de TresJS: Un taller de Vue.js
Vue.js Live 2024Vue.js Live 2024
119 min
Masterclass de Desarrollo Web 3D con el ecosistema de TresJS: Un taller de Vue.js
Workshop
Alvaro Saburido
Alvaro Saburido
Presentamos "Masterclass de Desarrollo Web 3D con TresJS", un taller especializado creado para desarrolladores de Vue.js ansiosos por explorar el mundo de la gráfica 3D en sus aplicaciones web. TresJS, un potente renderizador personalizado para Vue, está diseñado específicamente para funcionar perfectamente con el sistema reactivo de Vue. Este taller ofrece una inmersión profunda en la integración de visualizaciones 3D sofisticadas y experiencias interactivas directamente en aplicaciones Vue, aprovechando las fortalezas únicas de los ecosistemas de Vue y TresJS.
Este taller está diseñado para desarrolladores de Vue.js que buscan ampliar sus habilidades en la tercera dimensión, diseñadores de UI/UX interesados en incorporar elementos 3D en aplicaciones web, y desarrolladores front-end curiosos sobre el potencial de la gráfica 3D para mejorar las experiencias de usuario. Debes estar familiarizado con Vue.js para aprovechar al máximo este taller.
Lo que Aprenderás- Introducción a TresJS: Descubre los fundamentos de TresJS y cómo se integra con el ecosistema de Vue para dar vida a la gráfica 3D.- Creación de Escenas 3D con Vue: Aprende a construir escenas 3D complejas utilizando componentes Vue, mejorando tus interfaces de usuario con visuales dinámicos e inmersivos.- Interactividad y Animación: Domina las técnicas para hacer tus escenas 3D interactivas, respondiendo a las entradas del usuario para una experiencia cautivadora.- Integración con Funcionalidades de Vue: Explora la integración avanzada de TresJS con la reactividad, los composables y la tienda Vuex de Vue para gestionar el estado en aplicaciones web 3D.- Rendimiento y Mejores Prácticas: Obtén información sobre la optimización de tus escenas 3D para el rendimiento y las mejores prácticas para mantener aplicaciones web fluidas y receptivas.