Pide tu presupuesto ya!
Aprendí esta lección de la manera difícil. Varias veces, en realidad. Y tengo la historia de GIT para demostrarlo.
Allí estaba, mirando un componente React que había globalizado a más de 500 líneas. Usted sabe el tipo, comenzó simple, luego se cultivó tentáculos a medida que las características se aportaron. El clásico “Limpiaré esto más tarde” que nunca sucedió. Todos hemos estado allí, ¿verdad?
Con Claude en mi esquina, pensé que solo decía “Hola, refactorizar todo este componente” y ver que la magia sucede. Quiero decir, ¿por qué no? Para eso está la IA, ¿verdad?
Equivocado. Muy mal.
“Refactor de este componente para que sea más modular y mantenible”, le dije con confianza, recostado en mi silla con una sonrisa petulante, ya imaginando cuán impresionado estaría mi equipo.
Claude escupió un refactor de aspecto hermoso. Ganchos personalizados extraídos. Lógica separada. Los accesorios destruyeron cuidadosamente. Incluso agregó comentarios de JSDOC. En la superficie, parecía exactamente lo que quería.
Lo copié, ejecuté la aplicación y … nada cargado. No solo el componente: tres páginas diferentes se rompieron. ¿Esa sonrisa presumida? Desaparecido. Reemplazado por pánico puro.
Resulta que la IA había roto silenciosamente el manejo del estado en múltiples componentes. Renombró algunas variables clave pero perdió referencias en otros lugares. Eliminó lo que parecía un código duplicado que realmente manejaba casos de borde sutil.
La peor parte? Arreglarlo me llevó más tiempo que si hubiera refactorado manualmente. Podría haber usado GIT para revertir el cambio, pero algunas partes funcionaban bien que quería mantener. El conjunto de cambios era tan grande que no pude mantener una pieza y descartar el resto.
Como todo estaba enredado en una actualización masiva, tuve que mantenerlo todo y arreglarlo manualmente. Pasé horas rastreando los cambios, tratando de descubrir qué salió mal, antes de aceptar finalmente la derrota y comenzar de nuevo.
Después de algunos experimentos más dolorosos (porque aparentemente soy un glotón para el castigo), me di cuenta de por qué pedirle a AI que “arregle todo” falla:
Los resultados son predecibles:
Después de esas dolorosas lecciones, desde entonces he aprendido algunas cosas sobre quitarse los pequeños bocados de este elefante que generalmente ayuda. Y por lo general, quiero decir cuando sigo mi propio consejo en lugar de impaciente.
Este es obvio pero todavía olvido la mitad del tiempo. Haz una rama limpia. Comprometerse. Este es su botón de pánico para cuando las cosas van de lado.
En lugar de “arreglar todo”, empiezo con:
Review this code and create a Markdown file of what should be improved or modularized. Don't rewrite anything yet.
Esto obliga a la IA a analizar sin cambiar, dándome una hoja de ruta en lugar de un reemplazo. Crear algo concreto como un archivo le permite usar un artefacto para colaborar con AI ON.
Es como pedirle a alguien que mire su garaje desordenado y haga una lista de lo que necesita organizarse antes de comenzar a mover las cosas. Muy menos peligroso.
Una vez que la lista esté en su lugar, revisaré esa lista y:
Esto me mantiene en control del proceso. La IA sigue siendo solo una herramienta, no el tomador de decisiones. Incluso si no sé qué demonios estoy haciendo (la mitad del tiempo), haré una nota como “arreglar esto lo mejor que pueda” para confiar en la experiencia del modelo en lugar de la mía (o la falta de ella).
A continuación, dividí la lista de verificación en trozos pequeños y manejables. Por ejemplo:
La clave: solo abordo un artículo a la vez. Uno. Singular. Uno. Esta es la diferencia entre el éxito y el desastre.
Es como comer un elefante, un bocado a la vez. Intenta tragarlo entero y te ahogarás. (No es que aboguen comiendo elefantes. Por favor, no lo hagas).
Para cada tarea:
Básicamente, trata a la IA como ese nuevo desarrollo junior que está realmente ansioso pero a veces malinterpreta los requisitos. No les dirías “refactorizar toda la aplicación” el primer día, ¿verdad?
Después de cada cambio:
Este ciclo te impide llegar demasiado por un camino roto. Es como conducir con puntos de control regulares en lugar de esperar hasta que esté completamente perdido para verificar el mapa.
// Handles form validation Para ayudar a la IA a comprender qué hace el código. Es como etiquetar las cajas en su garaje antes de pedirle a alguien que lo reorganice.Una vez que comencé a desglosar las cosas de esta manera, encontré el punto dulce. Ai pasó de ser mi equipo de demolición a mi desarrollador junior.
Es excelente en:
Es terrible en:
Refactorizar con AI no se trata de pedirle que “arregle todo”. Se trata de usar la IA como un multiplicador de fuerza para su propia experiencia.
Desglose el trabajo. Dar instrucciones específicas. Mantenga un plan de reversión.
La IA no es el arquitecto, lo eres. La IA es solo un teclado realmente inteligente que puede escribir código más rápido de lo que puede escribir. Una vez que adoptas esa realidad, la refactorización con IA se vuelve no solo posible, sino increíblemente poderosa.
Solo recuerda: un cambio a la vez. Y tal vez, solo tal vez, cree esa rama Git primero.
Leave a comment