Luchando contra la Deuda Técnica con la Refactorización Continua

Rate this content
Bookmark

Afrontémoslo: la deuda técnica es inevitable y reescribir tu código cada 6 meses no es una opción. La refactorización es un tema complejo que no tiene una solución única para todos. Las aplicaciones de Frontend son particularmente sensibles debido a los frecuentes cambios de requisitos y flujos de usuario. Nuevas abstracciones, patrones actualizados y limpieza de esas viejas funciones - todo suena genial en papel, pero a menudo falla en la práctica: los todos se acumulan, los tickets terminan pudriéndose en el backlog y el código legado aparece en cada rincón de tu base de código. Por lo tanto, un proceso de refactorización continua es la única arma que tienes contra la deuda técnica. En los últimos tres años, he estado explorando diferentes estrategias y procesos para refactorizar el código. En esta charla describiré los componentes clave de un marco para abordar la refactorización y compartiré algunos de los aprendizajes acumulados en el camino. Espero que esto te ayude en tu búsqueda de mejorar la calidad del código de tus bases de código.

FAQ

Alex es un profesional que trabaja en code sandbox y ha participado en conferencias anteriores como la de 2018 en Berlín. También está involucrado en la organización de eventos de comunidad como JS Heroes en Rumania.

JS Heroes es un evento de comunidad basado en Cluj, Rumania, organizado por Alex. El próximo evento está programado para mayo de 2023.

Las diapositivas están disponibles en línea en el enlace bit.ly barra Alex refactorización, donde se pueden seguir durante la charla o encontrar más tarde.

Alex se centra en hablar sobre la cultura de la refactorización y cómo gestionar la deuda técnica dentro de los equipos de ingeniería sin impactar el desarrollo del producto, en lugar de simplemente discutir técnicas específicas de refactorización.

El 'proveedor de pitcher' es un motor utilizado en code sandbox para ejecutar el editor, sirviendo todos los datos desde la VM. Se ha introducido una nueva forma de consumir los datos que convive con el método antiguo sin necesidad de eliminarlo inmediatamente.

Los tres pilares de la refactorización que Alex menciona son prácticas, inventario y proceso. Estos pilares ayudan a gestionar la deuda técnica y a implementar la refactorización como parte regular del desarrollo del proyecto.

En code sandbox, la deuda técnica se maneja documentándola en un documento separado de contabilidad de deuda técnica, donde se explica por qué se introdujo, posibles soluciones y quién es responsable de su seguimiento, asignándole una prioridad de resolución.

Alex Moldovan
Alex Moldovan
29 min
02 Dec, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta charla discute la importancia de la refactorización en el desarrollo y la ingeniería de software. Introduce un marco llamado los tres pilares de la refactorización: prácticas, inventario y proceso. La charla enfatiza la necesidad de prácticas claras, comprensión de la deuda técnica y un proceso bien definido para una refactorización exitosa. También destaca la importancia de la visibilidad, la recompensa y la resiliencia en el proceso de refactorización. La charla concluye discutiendo el papel de la propiedad, la gestión y la priorización en la gestión de la deuda técnica y los esfuerzos de refactorización.

1. Introducción y Antecedentes

Short description:

Hola a todos. Es una vista tan agradable estar frente a un escenario después de tanto tiempo. Ya he estado aquí antes. Lo pasé muy bien. Entonces, como dijo Yanni, mi nombre es Alex. Trabajo en code sandbox. Estoy organizando JS Heroes. Nuestro próximo evento es en mayo de 2023. Hoy quiero hablar sobre la refactorización. Pero antes de comenzar, hay este enlace en la parte inferior. Bit.ly barra Alex refactorización. Puedes encontrar las diapositivas allí. También puedes encontrarme en Twitter en Alex y Moldovan. Eso es prácticamente todo.

Hola a todos. Es una vista tan agradable estar frente a un escenario después de tanto tiempo. Tienen que disculpar mi voz, el clima de Berlín no fue amable con ella esta semana, desafortunadamente. Pero es una ciudad tan genial. Ya he estado aquí antes. Estuve en esta conferencia en 2018. Lo pasé muy bien.

Oh, sí. Entonces, comencemos. Entonces, como dijo Yanni, mi nombre es Alex. Vengo de Rumania. Trabajo en code sandbox. ¿Alguien aquí usa code sandbox? Genial. Alex. Buen público. Genial. También, como mencioné, estoy organizando JS Heroes. Este es un evento de community con sede en Cluj, Rumania. Nuestro próximo evento es en mayo de 2023. Así que espero ver a algunos de ustedes allí también. Ven a buscarme después de la charla. Podemos hablar más si estás interesado en esto.

Entonces, quiero hablar hoy sobre la refactorización. Pero antes de comenzar, hay este enlace aquí en la parte inferior. Bit.ly barra Alex refactorización. Puedes encontrar las diapositivas allí si quieres seguir o si quieres encontrarlas más tarde. Ya están en línea. Y también estarán después de la charla. También puedes encontrarme en Twitter en Alex y Moldovan, mientras la plataforma, con suerte, todavía está funcionando. Entonces sí, eso es prácticamente todo.

2. Por qué quiero hablar sobre la refactorización

Short description:

Quiero hablar sobre la cultura de la refactorización. Me fascina por qué no hemos descubierto cómo refactorizar nuestro código sin impactar el desarrollo del producto. Podemos construir equipos y culturas de ingeniería en torno a la introducción de la refactorización como cualquier otra tarea. Entendiendo que está bien vivir con deuda técnica, necesitamos gestionarla. Presentaré un marco llamado los tres pilares de la refactorización: prácticas, inventario y proceso.

Por qué quiero hablar sobre la refactorización o por qué esta charla es sobre la refactorización. Quiero hablar sobre la cultura de la refactorización. No estoy aquí para decirte formas de refactorizar code o técnicas para mejorar tu code o mejorar tus React componentes o frontend en general. Me fascina principalmente por qué no hemos descubierto cómo refactorizar nuestro code, nuestras bases de code sin realmente impactar el desarrollo del producto.

He trabajado con tantos equipos diferentes en los últimos años y especialmente con equipos de producto. Siempre ha habido este problema de, está bien, hemos acumulado deuda técnica, ahora es el momento para hacer la refactorización. Entonces, ya sabes, gerentes de proyectos, por favor hagan a un lado. Es el momento para que los ingenieros tomen el escenario y trabajen durante un mes reescribiendo todo, introduciendo un nuevo framework o lo que sea solo para resolver esta deuda técnica. Creo que podemos hacerlo mejor. Creo que podemos construir nuestros equipos de ingeniería y nuestras culturas de ingeniería alrededor de la introducción de la refactorización y tratarla como cualquier otra tarea en un proyecto.

Y esto se volvió aún más claro para mí hace unos meses cuando introdujimos esta nueva cosa en la base de code sandbox code. Entonces, tenemos esta cosa llamada un proveedor de pitcher. Pitcher es nuestro motor para ejecutar el editor. Entonces, cuando ejecutas el editor de code sandbox, tienes esta cosa de pitcher que te sirve todos los data desde la VM. Y presentamos una nueva forma de consumir los data de pitcher. Entonces ahora lo que tenemos es un proveedor de pitcher legado y un proveedor de pitcher, ¿verdad? Y eso está perfectamente bien. Nunca dijimos, está bien, ahora tenemos que detener todo en code sandbox y tenemos que centrarnos en deshacernos de la forma antigua porque tenemos una nueva forma de consumir data. Y creo que esto es realmente valioso. Entender que está bien vivir con deuda técnica. No tienes que sentirlo necesariamente como una carga. Pero sí tienes que gestionarlo. Entonces, en realidad esto sucedió mientras me preparaba para esta charla. Y mientras también hacía eso, me di cuenta de que tal vez el título está mal. Tal vez ni siquiera debería ser luchando contra la deuda técnica sino más bien gestionando la deuda técnica. Entonces, lo que voy a mostrarte en los próximos minutos es un framework de cómo yo creo que podemos gestionar la deuda técnica en los equipos de ingeniería. Y lo llamo los tres pilares de la refactorización. Porque, bueno, obviamente tiene tres pilares. Uno es prácticas, uno es inventario, y uno es el proceso. Y los voy a tomar uno por uno y explicar qué quiero decir con ellos. Entonces, primero, tenemos prácticas.

QnA

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

No resuelvas problemas, elimínalos
React Advanced Conference 2021React Advanced Conference 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Los humanos son solucionadores de problemas naturales y somos lo suficientemente buenos en eso que hemos sobrevivido a lo largo de los siglos y nos hemos convertido en la especie dominante del planeta. Debido a que somos tan buenos en eso, a veces también nos convertimos en buscadores de problemas, buscando problemas que podemos resolver. Aquellos que logran sus objetivos de la manera más exitosa son los eliminadores de problemas. Hablemos de la distinción entre resolver y eliminar problemas con ejemplos de dentro y fuera del mundo de la codificación.
Impacto: Creciendo como Ingeniero
React Summit 2022React Summit 2022
27 min
Impacto: Creciendo como Ingeniero
Top Content
Convertirse en un ingeniero web no es fácil, pero hay toneladas de recursos disponibles para ayudarte en tu viaje. ¿Pero a dónde vas desde allí? ¿Qué haces para seguir creciendo y para seguir expandiendo el valor que aportas a tu empresa? En esta charla, examinaremos los diferentes tipos de impacto que puedes tener como ingeniero web. Analizaremos lo que significa asumir proyectos más grandes y complejos, y cómo escalar a ti mismo y hacer crecer la comunidad a tu alrededor. Al impulsar nuestro propio desarrollo, todos podemos aumentar nuestro impacto, y en esta charla, discutiremos cómo hacerlo.
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
Jotai es una biblioteca de gestión de estado. La hemos estado desarrollando principalmente para React, pero conceptualmente no está vinculada a React. En esta charla, veremos cómo funcionan los átomos de Jotai y aprenderemos sobre el modelo mental que deberíamos tener. Los átomos son una abstracción agnóstica del marco para representar estados, y básicamente son solo funciones. Comprender la abstracción de átomo ayudará a diseñar e implementar estados en sus aplicaciones con Jotai
Un Marco para Gestionar la Deuda Técnica
TechLead Conference 2023TechLead Conference 2023
35 min
Un Marco para Gestionar la Deuda Técnica
Top Content
Seamos realistas: la deuda técnica es inevitable y reescribir tu código cada 6 meses no es una opción. La refactorización es un tema complejo que no tiene una solución única para todos. Las aplicaciones de frontend son particularmente sensibles debido a los frecuentes cambios de requisitos y flujos de usuario. Nuevas abstracciones, patrones actualizados y limpieza de esas viejas funciones - todo suena genial en papel, pero a menudo falla en la práctica: los todos se acumulan, los tickets terminan pudriéndose en el backlog y el código legado aparece en cada rincón de tu base de código. Por lo tanto, un proceso de refactorización continua es la única arma que tienes contra la deuda técnica.En los últimos tres años, he estado explorando diferentes estrategias y procesos para refactorizar el código. En esta charla describiré los componentes clave de un marco para abordar la refactorización y compartiré algunos de los aprendizajes acumulados en el camino. Espero que esto te ayude en tu búsqueda de mejorar la calidad del código de tus bases de código.

Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Como desarrolladores, pasamos gran parte de nuestro tiempo depurando aplicaciones, a menudo código que ni siquiera escribimos. Lamentablemente, a pocos desarrolladores se les ha enseñado cómo abordar la depuración, es algo que la mayoría de nosotros aprendemos a través de la experiencia dolorosa. La buena noticia es que _puedes_ aprender a depurar de manera efectiva, y hay varias técnicas y herramientas clave que puedes usar para depurar aplicaciones de JS y React.
Principios para Escalar el Desarrollo de Aplicaciones Frontend
React Summit 2023React Summit 2023
26 min
Principios para Escalar el Desarrollo de Aplicaciones Frontend
Top Content
Después de pasar más de una década en Google, y ahora como el CTO de Vercel, Malte Ubl no es ajeno a ser responsable de la infraestructura de software de un equipo. Sin embargo, estar a cargo de definir cómo las personas escriben software, y a su vez, construir la infraestructura que están utilizando para escribir dicho software, presenta desafíos significativos. Esta presentación de Malte Ubl revelará los principios guía para liderar una gran infraestructura de software.

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.
Masterclass Web3 - Construyendo Tu Primer Dapp
React Advanced Conference 2021React Advanced Conference 2021
145 min
Masterclass Web3 - Construyendo Tu Primer Dapp
Top Content
Featured WorkshopFree
Nader Dabit
Nader Dabit
En esta masterclass, aprenderás cómo construir tu primer dapp de pila completa en la blockchain de Ethereum, leyendo y escribiendo datos en la red, y conectando una aplicación de front end al contrato que has desplegado. Al final de la masterclass, entenderás cómo configurar un entorno de desarrollo de pila completa, ejecutar un nodo local e interactuar con cualquier contrato inteligente usando React, HardHat y Ethers.js.
Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Featured WorkshopFree
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Featured WorkshopFree
Mikhail Kuznetcov
Mikhail Kuznetcov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
JSNation 2023JSNation 2023
174 min
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
Top Content
Featured WorkshopFree
Alba Silvente Fuentes
Roberto Butti
2 authors
Esta masterclass de SvelteKit explora la integración de servicios de terceros, como Storyblok, en un proyecto SvelteKit. Los participantes aprenderán cómo crear un proyecto SvelteKit, aprovechar los componentes de Svelte y conectarse a APIs externas. La masterclass cubre conceptos importantes incluyendo SSR, CSR, generación de sitios estáticos y despliegue de la aplicación usando adaptadores. Al final de la masterclass, los asistentes tendrán una sólida comprensión de la construcción de aplicaciones SvelteKit con integraciones de API y estarán preparados para el despliegue.
De vuelta a las raíces con Remix
React Summit 2023React Summit 2023
106 min
De vuelta a las raíces con Remix
Featured Workshop
Alex Korzhikov
Pavlik Kiselev
2 authors
La web moderna sería diferente sin aplicaciones ricas del lado del cliente respaldadas por potentes frameworks: React, Angular, Vue, Lit y muchos otros. Estos frameworks se basan en JavaScript del lado del cliente, que es su núcleo. Sin embargo, existen otros enfoques para el renderizado. Uno de ellos (bastante antiguo, por cierto) es el renderizado del lado del servidor completamente sin JavaScript. Descubramos si esta es una buena idea y cómo Remix puede ayudarnos con ello?
Prerrequisitos- Buen entendimiento de JavaScript o TypeScript- Sería útil tener experiencia con React, Redux, Node.js y escribir aplicaciones FrontEnd y BackEnd- Preinstalar Node.js, npm- Preferimos usar VSCode, pero también se pueden utilizar IDE en la nube como codesandbox (otros IDE también están bien)