Vibe Coding — tu primera app sin saber programar — 4. Construir y corregir

17 min read min de lecture
Capítulo 04

Construir y corregir

Capítulo 4 de 10 · 40%

Objetivos de este capítulo

  • Probar cada etapa antes de avanzar
  • Depurar dialogando con la IA
  • Proporcionar la información correcta para corregir rápido

El bucle construir-probar-corregir

Has enviado tu mini-PRD, la IA ha generado la base de tu app. Empieza ahora la fase más larga — y la más formativa — del proyecto: la construcción iterativa. El ritmo es siempre el mismo: pides una cosa, la IA la hace, pruebas de inmediato, y según el resultado validas o corriges. Luego vuelves a empezar con la cosa siguiente.

Este ritmo puede parecer lento comparado con la tentación de pedirlo todo de golpe. En realidad es mucho más rápido a la larga, por una razón simple: cuando aparece un bug, sabes exactamente qué petición lo introdujo — la última. Sin esta disciplina, un bug puede venir de cualquiera de tus cinco últimas peticiones, y pasarás más tiempo buscando al culpable que corrigiéndolo.

flowchart LR
  D["Pide UNA cosa"] --> G["La IA genera"]
  G --> T["Prueba de inmediato"]
  T -->|"Funciona"| V["Valida y pasa a lo siguiente"]
  T -->|"Se rompe"| E["Copia el error exacto"]
  E --> C["Pide la corrección"]
  C --> T
  V --> D
El bucle de construcción: un solo cambio entre dos pruebas, siempre.

Probar cada etapa: tu checklist

Después de cada generación, abre la app y prueba realmente la funcionalidad. No te limites a mirar la pantalla: usa la app como lo haría un usuario. Para la función «añadir un hábito» de Tom, eso significa: teclear un nombre, hacer clic en el botón, verificar que el hábito aparece, añadir un segundo, y luego recargar la página para verificar que todo sigue ahí.

Acostúmbrate también a probar los casos límite — ahí es donde se esconden los bugs: ¿qué pasa si añades un hábito con el nombre vacío? ¿Si añades veinte? ¿Si haces clic dos veces muy rápido? No necesitas ser exhaustivo, pero dos o tres intentos «fuera del carril» por funcionalidad revelan las fragilidades antes que tus usuarios.

  • Probar el caso normal: ¿la acción principal funciona?
  • Recargar la página: ¿los datos siguen ahí?
  • Probar un caso límite: campo vacío, valor raro, doble clic.
  • Verificar en el móvil (o encogiendo la ventana) si tu app es mobile-first.

La consola del navegador: tu mejor aliada

Cuando algo se rompe sin explicación visible, la respuesta se encuentra casi siempre en la consola del navegador. Pulsa F12 (o clic derecho → «Inspeccionar»), y luego abre la pestaña «Console». Ahí es donde el navegador escribe los errores: líneas rojas, a menudo en inglés, que indican qué falló y dónde.

No necesitas entender esos mensajes — solo necesitas copiarlos. Así es como se ve un error típico:

text
Uncaught TypeError: Cannot read properties of null (reading 'addEventListener')
    at app.js:24:18

Traducción libre: «en la línea 24 del archivo app.js, el código intenta usar algo que no existe». Es exactamente el tipo de pista que la IA necesita para corregir en un mensaje en lugar de cinco. Errores frecuentes que encontrarás: TypeError (el código manipula un valor del tipo equivocado), ReferenceError (usa un nombre que no existe), SyntaxError (el propio código está mal formado), y 404 Not Found (un archivo no se encuentra).

Aprende a abrir la consola del navegador (F12) desde ahora, antes de necesitarla. Ahí se esconden los mensajes de error más útiles — y copiar una sola línea roja puede ahorrar una hora de depuración a ciegas.

El prompt de depuración perfecto

Cuando algo se rompe, no digas «no funciona». La IA no tiene forma de adivinar lo que ves en pantalla. Un buen informe de bug contiene cuatro elementos: lo que estabas haciendo, lo que esperabas, lo que pasó en su lugar, y el mensaje de error exacto de la consola. Con estas cuatro informaciones, el diagnóstico es casi siempre inmediato.

PROMPT
Bug a corregir.
Lo que estaba haciendo: hago clic en «añadir un hábito» después de teclear «Lectura» en el campo.
Lo que esperaba: el hábito aparece en la lista.
Lo que pasa: no se muestra nada, el campo se vacía.
Error en la consola: Uncaught TypeError: Cannot read properties of null (reading 'addEventListener') at app.js:24:18
Diagnostica la causa y corrige, explicándome de forma simple qué estaba mal.

Fíjate en la última frase: «explicándome de forma simple qué estaba mal». Es ella la que transforma cada bug en lección. Al cabo de diez correcciones, reconocerás tú mismo los errores corrientes — y escribirás peticiones que los eviten de entrada.

Cuando la IA da vueltas en círculo

Ocurre: señalas un bug, la IA «corrige», el bug sigue ahí, «corrige» de nuevo, y nada cambia — o peor, otra cosa se rompe. Al cabo de dos o tres intentos infructuosos, deja de insistir por la misma vía. Tres estrategias eficaces: pide a la IA partir de cero en esa funcionalidad («elimina todo el código del calendario y rehazlo más simple»), pídele añadir mensajes de diagnóstico («añade console.log para que veamos dónde se bloquea»), o reformula completamente tu petición inicial, que quizá era ambigua.

Ten también en mente la opción nuclear: volver a la última versión que funcionaba y retomar desde ahí. Para eso sirve exactamente Git, del que hablamos ahora mismo — una red de seguridad que hace las experimentaciones sin riesgo.

Si la IA propone reescribir la mitad de tu app para corregir un pequeño bug, desconfía: pide primero «¿puedes corregir esto con un cambio mínimo?». Las grandes reescrituras no solicitadas introducen a menudo nuevos bugs.

Guardar con Git: tu red de seguridad

Git es la herramienta que todos los desarrolladores usan para guardar el historial de un proyecto. La idea cabe en una imagen: en cada etapa que funciona, tomas una «foto» (un commit) de tu proyecto. Si una experimentación sale mal, vuelves a la última foto en un instante. Ya no hace falta tener miedo de romper: todo es reversible.

Si estás en una herramienta de navegador (Lovable, v0, Bolt), buena noticia: la mayoría gestionan el historial de versiones por ti — busca un menú «History» o «Versions» y localiza cómo restaurar un estado anterior. Si estás en Cursor o Claude Code, pide simplemente a la IA que haga los commits por ti, o aprende los tres comandos esenciales:

bash
# En cada etapa que funciona, toma una foto del proyecto:
git add .
git commit -m "Añadir hábito funciona"

# Para ver el historial de tus fotos:
git log --oneline

El buen ritmo: un commit después de cada funcionalidad probada y validada. El mensaje del commit describe lo que funciona («marcado diario OK», «calendario mostrado»). Tom adopta este hábito desde la primera noche — y el día en que una experimentación de diseño rompe toda su maquetación, vuelve atrás en treinta segundos en lugar de reconstruirlo todo.

Avanzar con pequeños pasos seguros

Una funcionalidad probada y que funciona = un punto de apoyo sólido. Construyes sobre lo estable, no sobre arena. Eso es lo que evita el efecto «todo está roto y no sé por qué» que desanima a tantos principiantes. La secuencia completa de Tom para cada funcionalidad: pedir → probar → corregir si hace falta → hacer commit → pasar a la siguiente.

Este método tiene un efecto secundario valioso: la confianza. Cada pequeño paso validado es una victoria concreta, y la motivación se alimenta de victorias. Al final del capítulo, la app de Tom hace todo lo que preveía su v1 — añadir, eliminar, marcado diario, racha — y cada ladrillo ha sido verificado. Está listo para la puesta en línea.

🛠️ Te toca a ti

Contexto

Tom ha añadido la función «marcar un hábito» pero algo no funciona: el clic en la casilla no cambia nada en pantalla, y la racha se queda a cero. En lugar de entrar en pánico o enviar «no funciona» a la IA, va a aplicar el método completo de depuración — consola, informe de bug en cuatro puntos, corrección, re-prueba, y commit de guardado. Reproduce este método en tu propia app, con un bug real o siguiendo las etapas en vacío para entrenarte.

Instrucciones

  1. Prueba la nueva funcionalidad inmediatamente después de la generación, como un usuario real.
  2. Recarga la página para verificar que los datos persisten.
  3. Abre la consola (F12) y localiza la o las líneas rojas si las hay.
  4. Redacta un informe de bug en 4 puntos: lo que hacías, lo que esperabas, lo que pasó, el error exacto copiado y pegado.
  5. Envía el informe a la IA pidiendo una corrección mínima y una explicación simple.
  6. Aplica la corrección y vuelve a probar el caso normal Y un caso límite.
  7. Cuando todo funcione, guarda: un commit de Git o un punto de restauración en tu herramienta.
Pista — «no funciona» nunca basta: da el error exacto y el contexto. Y si la IA falla dos veces seguidas en la misma corrección, cambia de estrategia — rehaz la funcionalidad de cero o pide console.log de diagnóstico.

En resumen

  • El ritmo: pedir UNA cosa, probar de inmediato, corregir, guardar, volver a empezar.
  • Prueba como un usuario: caso normal, recarga de página, casos límite.
  • La consola del navegador (F12) revela los verdaderos mensajes de error — cópialos tal cual.
  • El informe de bug perfecto: lo que hacías, lo que esperabas, lo que pasó, el error exacto.
  • Pide siempre una explicación simple con la corrección: cada bug se convierte en una lección.
  • Si la IA da vueltas en círculo: rehaz la funcionalidad de cero, añade diagnóstico, o reformula.
  • Git (o el historial de tu herramienta) hace todo reversible: un commit después de cada etapa validada.
  • Avanzar con pequeños pasos probados evita el efecto «todo está roto y no sé por qué».

Quiz — comprueba tu comprensión

1. ¿Qué proporcionar para depurar eficazmente?

El error literal de la consola más los cuatro puntos del informe de bug permiten un diagnóstico inmediato.

2. ¿Por qué probar en cada etapa?

Con un solo cambio entre dos pruebas, el culpable de un bug es siempre la última petición.

3. ¿Cómo abrir la consola del navegador?

La consola está integrada en todos los navegadores: F12 y la pestaña Console bastan para ver los errores en rojo.

4. La IA falla dos veces seguidas en corregir el mismo bug. ¿Qué haces?

Insistir por una vía que falla hace dar vueltas en círculo. Partir limpiamente de cero en la funcionalidad es a menudo más rápido.

5. ¿En qué momento hacer un commit de Git (o un punto de restauración)?

Un commit por etapa que funciona = una red de seguridad permanente. Si una experimentación lo rompe todo, vuelves atrás en treinta segundos.

Auteur(s)

R

REHOUMA Haythem

Haythem Rehouma est un ingénieur et architecte IA et cloud, formateur et enseignant technique, avec un profil orienté IA médicale, AWS, MLOps, LLM/RAG et vision par ordinateur.