Pruebas para una Mejor Experiencia de Desarrollador

Rate this content
Bookmark

¿Son nuestras pruebas de UI una tarea tediosa, o nos ayudan a avanzar más rápido? Examinemos qué hace que las pruebas sean excelentes y no tan excelentes. Nos centraremos en estrategias de prueba que nos ayuden a codificar con confianza y claridad, y dónde pueden costarnos tiempo y energía. El secreto de una buena prueba radica en cómo moldea nuestra experiencia como desarrolladores. ¿Nuestras pruebas nos dan retroalimentación útil de manera oportuna? ¿Qué tan rápido podemos identificar qué está mal cuando falla un conjunto de pruebas? ¿Documentan nuestras características y explican nuestras decisiones pasadas? Responderemos estas preguntas con mejores pruebas que nos den alegría.

This talk has been presented at React Day Berlin 2024, check out the latest edition of this React Conference.

Will Klein
Will Klein
21 min
16 Dec, 2024

Comments

Sign in or register to post your comment.
  • Dmytro
    Dmytro
    DataArt
    Thank you for the talk! It was usefull.
Video Summary and Transcription
Quiero hablar sobre la importancia de las pruebas y cómo pueden mejorar la experiencia del desarrollador. La falta de pruebas puede llevar a problemas y rupturas en la productividad. Se discuten los desafíos de usar TDD y probar al final, junto con los beneficios de escribir pruebas temprano. Las pruebas efectivas proporcionan retroalimentación valiosa y ahorran tiempo. Se recomienda priorizar las pruebas centradas en el usuario y usar las pruebas como documentación. Las pruebas deben parecerse al comportamiento del usuario, y se sugiere mejorar las capacidades de prueba con linters y custom matchers. Las técnicas avanzadas de prueba pueden mejorar la productividad del desarrollador.

1. Introduction to Testing and Developer Experience

Short description:

Quiero hablarles sobre las pruebas y cómo pueden ayudarnos a tener una mejor experiencia como desarrolladores. Trabajar con buenas pruebas es una de mis cosas favoritas y me ayuda a disfrutar aún más escribir código. Permítanme compartir una historia rápida.

♪♪ Hola, soy Will Klein, y quiero hablarles sobre las pruebas. En particular, quiero compartir cómo las pruebas pueden ayudarnos a tener una mejor experiencia como desarrolladores. Comencé una empresa llamada ToolSpace, una consultoría enfocada en construir excelentes herramientas para desarrolladores y mejorar la experiencia del desarrollador para todos porque es lo que más disfruto hacer.

Y trabajar con pruebas, buenas pruebas de hecho, es una de mis cosas favoritas para tener en mi arsenal, y me ayuda a disfrutar aún más escribir código de lo que ya lo hago. Me gustaría compartir con ustedes hoy cómo lo hago para que ustedes también puedan hacerlo. Permítanme comenzar compartiendo una historia rápida.

Tengo un proyecto de cliente donde recientemente envié mi primera característica, y fue un poco desafiante de implementar, en parte porque era nuevo en la base de código, pero también porque sentía que la experiencia del desarrollador estaba un poco carente. Algunos herramientas necesitaban ser configuradas, y las pruebas en particular, bueno, había pruebas unitarias para algunas cosas, pero no había pruebas de integración, y no había pruebas de extremo a extremo. Así que si hacía un cambio, realmente no tenía la confianza a la que estoy acostumbrado de saber que todo sigue funcionando. Así que trabajé un poco más despacio de lo habitual, y fui muy cuidadoso con entender el impacto de mis cambios.

2. The Importance of Having Tests in Place

Short description:

Pensando en retrospectiva, debería haber insistido en tener pruebas en su lugar. Después de enviar una característica, un cliente me contactó diciendo que rompió algo. No tenía pruebas para darme la confianza de que mi cambio no causó el problema. Resultó ser culpa de otra persona, pero la falta de pruebas causó una interrupción en la experiencia del desarrollador y la productividad.

Y pensando en retrospectiva, realmente debería haber insistido, realmente deberíamos tener algunas pruebas en su lugar. He estado allí donde simplemente he seguido adelante, y, ya sabes, sí, desearía haber tenido esas pruebas. Y de hecho, después de que envié esta característica hace unas semanas, la semana después el cliente se puso en contacto conmigo y dijo, oye, ese trabajo que hiciste en esta cosa, rompió algo. Eso es muy importante, y necesitamos que lo arregles. Y yo estaba como, oh, caray. Estaba trabajando en otra cosa, tuve que detener lo que estaba haciendo, tuve que cambiar de contexto a lo que había estado trabajando, y comencé a investigarlo. Y mientras lo investigaba, seguía pensando, hmm, realmente no creo que fuera mi cambio, pero no tenía pruebas. No tenía pruebas para saber eso, para darme esa confianza de saber que todo seguía funcionando después de que hice el cambio. Así que hice mi investigación, y después de un período de tiempo bastante corto, descubrí que no era yo. No fue mi cambio. Y honestamente, desearía que fuera yo, porque si lo fuera, sabría lo que cambié. Podría haberlo resuelto bastante rápido. Pero en cambio, tuve que decirle a mi equipo que no sabía qué lo rompió, no fui yo, lo que significaba que otros dos desarrolladores entonces tuvieron que detener lo que estaban haciendo y luego mirar qué salió mal. Así que una especie de caso clásico de no tener las pruebas que deberías tener, y tu experiencia como desarrollador se descompone completamente, tu productividad se va por la ventana, teniendo que cambiar de contexto, teniendo que detener lo que estás haciendo, teniendo que averiguar qué es esto en lugar de construir características y hacer cosas geniales. Este no es el lugar donde nadie quiere estar.

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

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.
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.
Tu Ritmo con GraphQL
GraphQL Galaxy 2022GraphQL Galaxy 2022
31 min
Tu Ritmo con GraphQL
The Talk discusses the value proposition of GraphQL and its ability to solve common pain points in API development. It highlights the importance of making informed decisions when choosing GraphQL clients, servers, and schema builders. The Talk also emphasizes the need to focus on the best developer experience in the present rather than seeking a perfect long-term solution. Additionally, it mentions the future of the Urkel GraphQL client and the reasons for dropping ReScript support. Overall, the Talk provides insights into the current state and future trends of GraphQL development.
Aplicaciones React (+Native) full-stack y seguras con tRPC.io
React Advanced 2021React Advanced 2021
6 min
Aplicaciones React (+Native) full-stack y seguras con tRPC.io
Top Content
Alex introduces tRPC, a toolkit for making end-to-end type-safe APIs easily, with auto-completion of API endpoints and inferred data from backend to frontend. tRPC works the same way in React Native and can be adopted incrementally. The example showcases backend communication with a database using queries and validators, with types inferred to the frontend and data retrieval done using Prisma ORM.
Uso de UDP en el navegador para conexiones más rápidas entre cliente/servidor
JS GameDev Summit 2023JS GameDev Summit 2023
21 min
Uso de UDP en el navegador para conexiones más rápidas entre cliente/servidor
Top Content
This talk introduces geckos.io, a real-time client-server communication library using UDP and WebRTC. The speaker discusses the benefits of UDP for real-time multiplayer games and explains how geckos.io enables UDP connections between browsers and Node.js servers. The deployment process for geckos.io involves opening UDP ports and handling signaling through an HTTP request. The speaker demonstrates how geckos.io works with Docker and showcases the ability to host multiple servers on the same machine. Overall, this talk provides an overview of geckos.io and its applications in real-time communication.

Workshops on related topic

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.
Managers Are From Mars, Devs Are From Venus
TechLead Conference 2024TechLead Conference 2024
111 min
Managers Are From Mars, Devs Are From Venus
Workshop
Mo Khazali
Mo Khazali
Una Guía para Desarrolladores sobre Cómo Comunicar, Convencer y Colaborar Efectivamente con los Stakeholders
Es una historia tan antigua como el tiempo: la colaboración entre desarrolladores y stakeholders de negocios ha sido durante mucho tiempo un desafío, con una falta de comunicación clara que a menudo deja a ambas partes frustradas. Los mejores desarrolladores pueden comprender profundamente las necesidades de sus contrapartes de negocios, comunicar efectivamente la estrategia técnica sin perder a la audiencia no técnica y convencer al negocio de tomar las decisiones correctas. Trabajando en una consultoría, he fallado y tenido éxito en arquitectar y “vender” visiones técnicas, aprendiendo muchas lecciones en el camino.Ya sea que trabajes en una empresa de productos, seas consultor/freelancer, o quieras aventurarte más allá de ser solo un desarrollador, la capacidad de convencer y comunicar claramente con los stakeholders puede diferenciarte en la industria tecnológica. Esto se vuelve aún más importante con el auge de GenAI y el mercado de desarrolladores cada vez más competitivo, ya que la resolución de problemas y la comunicación efectiva son clave para posicionarte.En esta masterclass, compartiré ejemplos del mundo real, tanto buenos como malos, y te guiaré a través de poner la teoría en práctica mediante dojos.
Cómo crear experiencias de edición que tu equipo amará
React Advanced 2021React Advanced 2021
168 min
Cómo crear experiencias de edición que tu equipo amará
Workshop
Lauren Etheridge
Knut Melvær
2 authors
El contenido es una parte crucial de lo que construyes en la web. Las tecnologías web modernas aportan mucho a la experiencia del desarrollador en términos de construir sitios impulsados por contenido, pero ¿cómo podemos mejorar las cosas para los editores y creadores de contenido? En este masterclass aprenderás cómo usar Sanity.io para abordar la modelización de contenido estructurado, y cómo construir, iterar y configurar tu propio CMS para unificar los modelos de datos con experiencias de edición eficientes y agradables. Está dirigido a desarrolladores web que desean ofrecer mejores experiencias de contenido para sus equipos de contenido y clientes.