Planejador de Refatoração Segura
Planeje uma refatoração que preserva comportamento em passos entregáveis, cada um com verificação e rollback.
Por Os Melhores Prompts
Categoria: Programação
O que ele faz
Julga se a cobertura atual é suficiente para refatorar e, quando não é, especifica os characterization tests a escrever primeiro — fixando o comportamento de hoje, bugs incluídos. Depois inventaria todo comportamento observável de que os chamadores dependem (retornos, caminhos de erro, ordenação, contratos de log, performance) e sequencia refatorações nomeadas para que cada passo compile, verifique e possa subir sozinho, com expand-and-contract para tudo que um consumidor externo toca.
Use quando
- Código legado sem testes que mandaram você limpar
- Uma refatoração que precisa subir em partes, não num PR único
- Renomear coluna de banco ou campo de API que outros times leem
- Uma refatoração que travou no meio e agora bloqueia releases
O que você recebe
- Veredito sobre a rede de segurança e os characterization tests a escrever
- Inventário de comportamento com tudo de que os chamadores dependem
- Passos de refatoração nomeados, cada um com seu comando de verificação
- O passo mais arriscado e seu caminho de rollback
- Sequência de expand-and-contract para consumidores externos
Como usar
- Cole o código e seus chamadores em {{target_code}} — a maioria das refatorações "que preservam comportamento" quebra em um contrato que só existe no ponto de chamada.
- Em {{refactor_goal}}, diga o que fica fácil depois disso pronto, não só o que é feio.
- Descreva {{test_safety_net}} com honestidade: quais testes cobrem esse caminho e se eles asseguram comportamento ou estrutura.
- Liste {{deployment_constraints}}: cadência de release, outros consumidores, compatibilidade de banco ou API, feature flags.
- Escreva os characterization tests antes do passo um e respeite as stop conditions em vez de insistir.
Tags: refactoring, legacy-code, characterization-tests, expand-and-contract, technical-debt, incremental-migration
Preço: 10.00 BRL