El código no se ejecuta en orden: toma caminos
Un programa es un laberinto con dos mecanismos: condiciones (escoge un camino según si algo es verdadero o falso) y loops (repite un tramo mientras se cumpla una condición). Los errores más frecuentes de la IA no están en los datos: están en el laberinto — el camino que no previó o la repetición que no paró a tiempo.
[Dos siluetas del laberinto]
Esta actividad interactiva ('Explicacion visual') requiere el motor completo de Lumbre. El contenido estatico se muestra arriba; para la experiencia interactiva, visita la version online de este objeto.
Un fragmento para rastrear con el dedo
const mensajes = ["hola", "", "adios", ""]; // 4 elementos, dos vacios\nlet visibles = [];\n\nfor (const texto of mensajes) { // LOOP: recorre la lista\n if (texto.length > 0) { // CONDICION: solo si no esta vacio\n visibles.push(texto); // guardalo en visibles\n }\n}\n// visibles queda ["hola", "adios"]Las tres fallas de flujo que comete la IA
| Falla | Cómo se ve | Qué preguntar |
|---|---|---|
| Caminos que no previó | solo escribió el «si», no el «sino» | ¿Qué pasa si el dato llega vacío / nulo / sin permiso? |
| Loop que no termina | la app se congela o repite infinitamente | ¿Cuál es la condición exacta de parada? |
| Condición invertida | muestra lo que debía ocultar y al revés | ¿Este if hace lo correcto cuando es VERDADERO? |
Prueba
Con el fragmento de ejemplo, ¿cuántas vueltas da el loop y cuántos elementos quedan en «visibles»?
Si un usuario reporta «la pantalla se congela al abrir la lista», sospechar de un loop sin condición de parada es una hipótesis razonable.
Detecta la condición invertida
Pediste que SOLO los administradores vean el botón de borrar. Señala la línea que hace justo lo contrario:
- function accionesContacto(usuario) {
- const botonBorrar = null;
- if (!usuario.esAdmin) {
- return { botonBorrar: "visible" };
- } else {
- return { botonBorrar: null };
- } }
Identifica la linea con error.
Toma una regla de negocio de tu proyecto («si el stock es cero, mostrar agotado») y pide a la IA el fragmento. Rastrea su flujo con el dedo usando un dato normal y un dato borde. ¿Sobrevive el borde?