3 puntos por frogred8 11 시간 전 | 1 comentarios | Compartir por WhatsApp

Hice un juego web con el concepto de recopilar los comentarios de los usuarios para desplegarlos al día siguiente.
Es un proyecto que hice para familiarizarme con las herramientas de IA; el GitHub también está público, así que pueden revisarlo con confianza.
game: https://spiralwave.frogred8.dev
github: https://github.com/frogred8/SpiralWave

  • Resumen y planificación del proyecto
    • Motivación y objetivo: experimento de vibe coding usando herramientas de IA avanzadas (como Gemini) e intento de desarrollar un juego web aplicando tecnologías que no había usado.
    • Dirección de desarrollo: se decidió hacer un minijuego web de 'recolección de recursos con límite de tiempo' donde las opiniones de los usuarios se reflejan automáticamente cada día.
  • Creación del prototipo inicial
    • Concepto central: juego de recolección de recursos y construcción de árbol de habilidades sin competencia ni pérdidas.
    • Uso de IA: convirtiendo un boceto en papel en un prompt, se implementó en 30 minutos la estructura básica del juego con TypeScript, Vite y Phaser.
  • Límites en la implementación de lógica compleja y resolución manual
    • Desarrollo del árbol de habilidades: la lógica básica de prerequisitos se implementó con IA, pero la lógica compleja donde al cancelar un nodo intermedio se cancelan en cadena los nodos inferiores no pudo resolverla la IA, así que se implementó manualmente.
    • Omisión de código de pruebas: debido a cambios frecuentes de diseño y a la velocidad del desarrollo, se avanzó deliberadamente sin escribir tests.
  • Gran refactorización y características del debugging con IA
    • Separación de UI: se separó el código de UI porque un solo archivo había crecido demasiado, pero la uniformidad y la satisfacción con la estructura fueron bajas; se confirmó que, en trabajos grandes, reforzar el prompt y rehacer resulta efectivo.
    • Bug de orden de ejecución: ante un error de runtime surgido después de la refactorización (se invirtió el orden entre la actualización de estado y la visualización de UI), la IA solo insistía con código de guarda; al final, el desarrollador humano entendió el flujo y lo resolvió fácilmente corrigiendo directamente dos líneas de código.
    • Dio una sensación curiosa ver que los errores de la IA son relativamente humanos.
  • Aplicación de auto-commit en Git y de una guía
    • Construcción de una guía de prompts: para reducir la molestia de dar instrucciones repetitivas, se introdujo un archivo de directrices (GEMINI.md) que organiza el stack técnico y la forma de funcionamiento.
    • Flujo de trabajo automatizado: se configuró para generar automáticamente mensajes de commit que incluyan el tiempo de ejecución del agente, el prompt de instrucciones y un resumen del trabajo al terminar las tareas de código, reduciendo así el esfuerzo de revisión simple.
  • Diseño y optimización de la arquitectura de actualización automática
    • Cambio de método de despliegue: la idea inicial de despliegue automático en tiempo real cada 2 horas se descartó porque la alta tasa de bugs de runtime (aprox. 25%) reducía la estabilidad del build; en su lugar, se decidió generar y desplegar un build de prueba diario por separado.
    • Flujo con Cron: usando node:cron, se construyó un proceso automatizado monolítico que sigue la secuencia 'recolección de feedback → depuración → generación de código → build y creación de release → despliegue'.
    • Actualización de notas de la release: se compartió entre instancias de servidor de Docker el archivo de lista de servidores mediante un volumen común y se aplicó un caché con expiración de 5 minutos para controlar la carga; además, se implementó la publicación de notas de la release refinando primero las solicitudes multilingües de los usuarios al inglés y luego traduciéndolas de nuevo.
  • Funciones que se excluyeron durante el desarrollo
    • Función de recomendación/Like para opiniones del leaderboard (por ausencia de identificadores y costo de llamadas a la API).
    • Herramienta sofisticada de gestión de datos de habilidades (por límites de imaginación y porque editar JSON directamente era más eficiente).
    • Entorno distribuido de Docker por servicio (se integró en una sola imagen para minimizar la complejidad de operación y administración).
    • Función de notificación por correo al reflejar opiniones de usuarios (por la validez de recolectar correos sin registro y el riesgo de suplantación).
    • Agregar anuncios laterales (por el desgaste del proceso de aprobación de la plataforma y el poco efecto frente a la baja tarifa).
  • Comentarios finales sobre el desarrollo basado en IA
    • Trade-off entre productividad y pruebas: la velocidad de implementación aumentó unas 10 veces, pero se enfrentó la limitación de que el tiempo y la fatiga dedicados a la verificación (QA) crecían de forma proporcional.
    • Características de la calidad del código: el nivel de completitud por función es alto, pero la legibilidad es baja y dificulta entender el flujo general; también se observó una tendencia a introducir patrones de generalización innecesariamente pesados incluso en situaciones donde conviene más un hard coding localizado.

1 comentarios

 
recast7838 7 시간 전

Está interesante.