Skip to main content

Command Palette

Search for a command to run...

Agentes de código

Juntando tudo

Parabéns, você aprendeu a trabalhar com agentes de programação.

Agora você sabe como usar agentes para entender bases de código, criar funcionalidades rapidamente, pesquisar no seu código e encontrar bugs, revisar código com mais eficiência e personalizar agentes conforme suas necessidades. Este capítulo mostra um exemplo de como reunir todos esses elementos.

Um exemplo de ponta a ponta

Você entrou em uma equipe que mantém uma plataforma de e-commerce. É preciso adicionar códigos de desconto ao fluxo de checkout. A base de código é desconhecida, e a funcionalidade precisa ser lançada até o fim da semana.

Esta é uma situação realista. É preciso explorar antes de desenvolver, planejar antes de programar, testar antes de lançar e revisar antes de mergear.

Etapa 1: Entenda a base de código

Antes de fazer qualquer alteração, explore o fluxo de checkout. Use o agente para criar um mapa mental.

Ask mode example: Explore o fluxo de checkout
Preciso adicionar códigos de desconto ao nosso fluxo de checkout. Antes de fazer qualquer alteração, explique como o checkout funciona. Quais componentes, rotas de API e serviços estão envolvidos? Mostre o fluxo de dados do carrinho até a confirmação de pagamento.

Faça perguntas de acompanhamento para preencher as lacunas:

Ask mode example: Encontre onde os descontos se encaixam
Como funciona o cálculo de preços em TypeScriptsrc/services/PricingService.ts? Onde calculamos o total do pedido e em que ponto um desconto seria aplicado nesse fluxo?

Isso combina as técnicas de busca de entendendo sua base de código para rastrear o fluxo de checkout e resumir o que foi encontrado.

Etapa 2: Planeje a funcionalidade

Agora que você entende a base de código, crie um plano. Mude para o modo Plan (Shift+Tab) e descreva o trabalho:

Plansdiscount-codes.md

Códigos de desconto

Visão geral

Adicione suporte a códigos de desconto ao checkout. Os usuários inserem um código, o sistema o valida e o desconto é aplicado ao total do pedido antes dos impostos.

Abordagem

Adicione um DiscountService com lógica de validação (validade, limites de uso)
Modifique PricingService.calculateTotal() para aceitar um desconto opcional
Adicione um campo para inserir o código de desconto ao componente OrderSummary
Adicione o endpoint /api/discount/validate

Tarefas

Crie a migração da tabela discount_codes
Crie um DiscountService com applyDiscount()
Adicione a etapa de desconto a PricingService.calculateTotal()
Adicione a UI para inserir o código no componente OrderSummary
Adicione a rota /api/discount/validate
Escreva testes para todos os tipos de desconto e casos de borda

Revise o plano. Remova etapas ambiciosas demais para a primeira iteração. Concentre-se no fluxo principal: aplicar um código, calcular o desconto e mostrá-lo no resumo. Em seguida, clique em Build para criar a primeira versão desta funcionalidade.

Etapa 3: Depure um caso de borda que está falhando

Após a build, um teste continua falhando: empilhar um desconto percentual com um desconto de valor fixo gera um total incorreto. O mesmo conjunto de descontos produz resultados diferentes dependendo da ordem em que são aplicados.

Use o Modo de Depuração ou peça ao agente para investigar a causa raiz:

Agent example: Depure a causa raiz
O teste de empilhamento de descontos está falhando. Os mesmos descontos produzem totais diferentes dependendo da ordem de aplicação. Descubra o motivo e corrija a ordem de aplicação dos descontos em TypeScriptsrc/services/DiscountService.ts. Mostre os valores antes e depois em cada etapa.

Isso aplica os princípios de depuração do capítulo Finding and Fixing Bugs: não corrija os sintomas, encontre a causa.

Etapa 4: Revise e teste

Antes de fazer push, faça uma autorrevisão:

Ask mode example: Autorrevisão antes do push
Revise todas as alterações que fiz na funcionalidade de códigos de desconto. Verifique bugs, tratamento de erros ausente, casos de borda e consistência com os padrões existentes. O que um revisor de código sinalizaria?

Se você tiver agentes na nuvem configurados, inicie alguns para testar casos de borda que talvez tenham passado despercebidos: caracteres Unicode em códigos de desconto, valores altos de desconto ou uso simultâneo de códigos. Os agentes na nuvem informam os casos que cobriram e as áreas que precisam de mais testes, para que você possa preencher lacunas antes de fazer merge.

Etapa 5: Escreva uma regra

Você aprendeu algo com esta funcionalidade: os cálculos de desconto devem sempre aplicar descontos percentuais antes de descontos de valor fixo para garantir resultados consistentes, independentemente da ordem de entrada. Registre isso em uma regra para que o agente saiba disso da próxima vez:

# Regras de preço- Aplique descontos percentuais antes dos descontos de valor fixo- O total do pedido nunca pode ficar abaixo de US$ 0- Consulte src/services/PricingService.ts para ver o padrão canônico de cálculo

Isso fecha o ciclo. Você explorou, planejou, desenvolveu, testou, depurou, revisou e registrou conhecimento para o futuro.

Você terminou a funcionalidade de código de desconto. Um colega pede que você adicione cartões-presente na próxima semana. Qual é seu primeiro passo?

Continue criando

A melhor maneira de aprender é colocar em prática o que você aprendeu aqui.

As ferramentas e os modelos estão melhorando rapidamente, e as práticas específicas evoluirão com o tempo. Mas essa habilidade essencial — aprender a colaborar com agentes de programação — continuará trazendo resultados cada vez maiores. Ela está se tornando uma das habilidades mais importantes da engenharia de software.

Ao expandir os limites do que os agentes de programação podem fazer, você aproveitará ao máximo as ferramentas e os modelos mais recentes à medida que são lançados. Boa sorte e mantenha a curiosidade!