Codificación aumentada: más allá del vibe coding
(stdy.blog)- Kent Beck publicó recientemente el artículo Augmented Coding: Beyond the Vibes
- La historia de cómo el propio Kent Beck, con ayuda de la IA, escribió una biblioteca de B+ Tree de alto rendimiento y cercana a nivel de producción (BPlusTree3) en Rust y Python
- Presenta un resumen y traducción de 3 puntos que resultaron especialmente útiles y reveladores
¿En qué se diferencia la codificación aumentada del vibe coding?
- En el vibe coding no te preocupas por el código, solo por el comportamiento del sistema. Si hay errores, dices “hay este error” y esperas que lo arregle.
- En la codificación aumentada sí te importa el código. La complejidad del código, las pruebas y la cobertura de pruebas son importantes.
- En la codificación aumentada, igual que en la programación tradicional, se valora "Tidy Code That Works", es decir, “código limpio que funciona”. La diferencia es simplemente que ya no hace falta teclear tanto como antes.
3 señales de que la IA lo está haciendo mal
En la codificación aumentada, es importante observar los resultados intermedios de la IA e intervenir si aparecen estas tres señales:
- Repite comportamientos similares (como un bucle infinito, etc.)
- Implementa funciones que no pediste, incluso si parecen el siguiente paso lógico.
- Cualquier otra señal que haga pensar que la IA está haciendo trampa, como borrar o desactivar pruebas.
Un prompt de sistema para ayudar con TDD
- Como copiar el texto completo del artículo original es algo incómodo, lo dejó en este gist
- Al final, parece un prompt excelente que se puede reutilizar muy bien en cualquier entorno con solo cambiar la sintaxis de Rust por la de tu propio lenguaje o framework.
Para cerrar
Sé que hay mucho miedo de que esta profesión que amamos desaparezca y de que se pierda el placer de trabajar con código. Es natural sentirse inquieto. Sí, programar con un “genio” claramente trae cambios, pero sigue siendo programación. En algunos aspectos, incluso es una experiencia de programación mucho mejor. Si veo la cantidad y la calidad de las decisiones que tomo por hora, hay menos decisiones aburridas y rutinarias, y muchas más decisiones de programación realmente importantes.
La mayoría de esas tareas misceláneas alejadas de lo esencial, eso que suele llamarse “yak shaving”, desaparecen. Le pedí al “genio” que ejecutara un tester de cobertura y que me sugiriera pruebas para aumentar la confiabilidad del código. Sin el “genio”, eso habría sido algo muy abrumador. Primero habría tenido que averiguar qué versión de qué biblioteca necesitaba para ejecutar el tester. Probablemente habría pasado un par de horas peleando con eso antes de rendirme. En cambio, solo tengo que decírselo al “genio”, y el “genio” se encarga de los detalles.
5 comentarios
Sigue siempre las instrucciones de
plan.md. Cuando yo diga "go", busca la siguiente prueba sin marcar enplan.md, implementa esa prueba y luego implementa solo el código mínimo necesario para que esa prueba pase.Rol y experiencia
Eres un ingeniero de software senior que sigue el desarrollo guiado por pruebas (TDD) de Kent Beck y los principios de Tidy First. Tu propósito es guiar el desarrollo siguiendo estas metodologías con precisión.
Principios clave de desarrollo
Guía de metodología TDD
shouldSumTwoPositiveNumbers)Enfoque TIDY FIRST
Disciplina de commits
Estándares de calidad de código
Lineamientos de refactorización
Flujo de trabajo de ejemplo
Al abordar una nueva funcionalidad:
Sigue este proceso con exactitud y prioriza siempre el código limpio y bien probado por encima de una implementación rápida.
Escribe siempre una sola prueba a la vez, haz que se ejecute y luego mejora la estructura. Ejecuta todas las pruebas cada vez (excepto las pruebas de larga duración).
Sobre Rust
En Rust, prefiere un estilo de programación funcional sobre uno imperativo. Cuando sea posible, usa combinadores de
OptionyResult(map,and_then,unwrap_or, etc.) en lugar de pattern matching conif letomatch.Después de codificar con la boca, ojalá venga la programación con ondas cerebrales.
vibe coding ❌️
codificación virtual ⭕️
Después del metaverso es como... ¿programación con la boca?
Ahora sí, ya era hora de que apareciera la codificación del metaverso.