3 pontos por frogred8 11 시간 전 | 1 comentários | Compartilhar no WhatsApp

Criei um webgame com o conceito de reunir os itens de feedback dos usuários e implantá-los no dia seguinte.
Foi um projeto que fiz para me familiarizar com ferramentas de IA, e o GitHub também está público, então fique à vontade para explorar.
game: https://spiralwave.frogred8.dev
github: https://github.com/frogred8/SpiralWave

  • Visão geral e planejamento do projeto
    • Motivação e objetivo: experimento de vibe coding usando ferramentas de IA avançadas (como Gemini) e tentativa de desenvolver um webgame aplicando tecnologias que eu ainda não tinha usado.
    • Direção de desenvolvimento: definido como um mini webgame de 'coleta de recursos com limite de tempo', no qual as opiniões dos usuários são refletidas automaticamente todos os dias.
  • Criação do protótipo inicial
    • Conceito principal: jogo de coleta de recursos e montagem de árvore de habilidades sem competição nem perdas.
    • Uso de IA: converti um esboço em papel em prompt e implementei em 30 minutos a estrutura básica do jogo com TypeScript, Vite e Phaser.
  • Limites da implementação de lógica complexa e solução manual
    • Desenvolvimento da árvore de habilidades: a lógica básica de pré-requisitos foi implementada com IA, mas a lógica complexa em que, ao cancelar um nó intermediário, os nós inferiores são cancelados em cadeia não pôde ser resolvida pela IA, então implementei isso manualmente.
    • Omissão de código de teste: devido às frequentes mudanças de design e à alta velocidade de desenvolvimento, avancei intencionalmente sem escrever testes.
  • Grande refatoração e características da depuração com IA
    • Separação da UI: separei o código da UI porque um único arquivo estava ficando grande demais, mas a consistência e a satisfação com a estrutura foram baixas; confirmei que, em trabalhos grandes, reforçar o prompt e refazer a tarefa é uma abordagem eficaz.
    • Bug de ordem de execução: em relação a um erro de runtime surgido após a refatoração (inversão entre a atualização de estado e a ordem de exibição da UI), a IA apenas exagerou no uso de guard clauses; no fim, o desenvolvedor humano entendeu o fluxo e resolveu o problema de forma simples corrigindo diretamente duas linhas de código.
    • Tive a sensação curiosa de que os erros da IA eram relativamente humanos.
  • Aplicação de auto commit no Git e de guias
    • Criação de guia de prompts: para reduzir o incômodo de instruções repetitivas, adotei um arquivo de diretrizes (GEMINI.md) que organiza a stack técnica e o modo de funcionamento.
    • Workflow de automação: configurei para que, após a conclusão do trabalho no código, fosse gerada automaticamente uma mensagem de commit com o tempo de execução do agente, o prompt de instrução e um resumo da tarefa, reduzindo o esforço de revisão simples.
  • Projeto da arquitetura de atualização automática e otimização
    • Mudança na forma de implantação: abandonei a ideia inicial de implantação automática em tempo real a cada 2 horas devido à alta taxa de bugs em runtime (cerca de 25%), que comprometia a estabilidade do build, e decidi por criar e implantar separadamente um build diário de teste.
    • Workflow com Cron: usando node:cron, construí um processo de automação monolítico que segue o fluxo 'coleta de feedback → refinamento → geração de código → build e criação de release → implantação'.
    • Atualização das notas de release: compartilhei o arquivo de lista de servidores entre instâncias Docker por meio de um volume comum e apliquei cache com expiração de 5 minutos para controlar a carga; além disso, implementei a exibição das notas de release refinando primeiro os pedidos multilíngues dos usuários para inglês e depois traduzindo-os novamente.
  • Funcionalidades que foram descartadas durante o desenvolvimento
    • Função de recomendação (Like) para opiniões no leaderboard (ausência de identificador e custo das chamadas de API).
    • Ferramenta sofisticada de gerenciamento de dados de habilidades (limites da imaginação e maior eficiência em editar JSON diretamente).
    • Construção de um ambiente Docker distribuído por serviço (integrado em uma única imagem para minimizar a complexidade de operação e gerenciamento).
    • Função de notificação por e-mail quando a opinião do usuário for refletida (validade da coleta de e-mails sem cadastro e risco de uso indevido).
    • Inclusão de anúncios laterais (fadiga com o processo de aprovação da plataforma e efeito insuficiente em relação ao baixo valor pago).
  • Impressões sobre desenvolvimento com IA
    • Trade-off entre produtividade e testes: a velocidade de implementação aumentou cerca de 10 vezes, mas enfrentei o limite de que o tempo e a fadiga gastos com validação (QA) crescem proporcionalmente.
    • Características da qualidade do código: a completude no nível de função é alta, mas a legibilidade é baixa, o que dificulta entender o fluxo geral; também notei uma tendência de introduzir padrões de generalização desnecessariamente inchados mesmo em situações em que um hard coding pontual seria mais vantajoso.

1 comentários

 
recast7838 7 시간 전

Interessante.