Pular para o conteúdo
Skillpedia
Código em geral40 mil · #5337

refactor-method-complexity-reduce

Ajuda seu agente a simplificar métodos complexos no código. Ele extrai partes do código para criar métodos menores e mais fáceis de entender.

O que ela faz

Essa ferramenta ajuda a simplificar um trecho de código complicado, dividindo-o em partes menores e mais fáceis de entender. O objetivo é tornar o código mais legível e fácil de manter.

Quando usar

  • ✓Quando um trecho de código está muito longo e difícil de ler.
  • ✓Se você precisa entender ou modificar um código escrito por outra pessoa.
  • ✓Para melhorar a qualidade geral do código antes de adicioná-lo a um projeto.

Exemplo do que pedir para a IA

“Simplifique este método chamado 'processarDadosDoUsuario' para que sua complexidade seja no máximo 10.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/github/awesome-copilot/blob/main/skills/refactor-method-complexity-reduce/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/refactor-method-complexity-reduce/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta analisa o código para encontrar partes complexas, como muitas condições ou repetições. Em seguida, ela cria novas funções menores para cada parte complexa e atualiza o código original para chamar essas novas funções, mantendo tudo funcionando como antes.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add github/awesome-copilot --skill refactor-method-complexity-reduce

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/refactor-method-complexity-reduce/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Refatorar Método para Reduzir Complexidade Cognitiva

Objetivo

Refatorar o método ${input:methodName}, para reduzir sua complexidade cognitiva para ${input:complexityThreshold} ou menos, extraindo a lógica em métodos auxiliares focados.

Instruções

  1. Analisar o método atual para identificar fontes de complexidade cognitiva:

    • Declarações condicionais aninhadas
    • Múltiplas cadeias if-else ou switch
    • Blocos de código repetidos
    • Múltiplos loops com condições
    • Expressões booleanas complexas
  2. Identificar oportunidades de extração:

    • Lógica de validação que pode ser extraída para um método separado
    • Processamento específico de tipo ou caso que se repete
    • Transformações ou cálculos complexos
    • Padrões comuns que aparecem várias vezes
  3. Extrair métodos auxiliares focados:

    • Cada auxiliar deve ter uma responsabilidade única e clara
    • Extrair validação para métodos Validate* separados
    • Extrair lógica específica de tipo para métodos manipuladores (handlers)
    • Criar métodos utilitários para operações comuns
    • Usar níveis de acesso apropriados (static, private, async)
  4. Simplificar o método principal:

    • Reduzir a profundidade de aninhamento
    • Substituir cadeias if-else massivas por chamadas orquestradas menores
    • Usar instruções switch onde apropriado para um despacho mais limpo
    • Garantir que o método principal seja lido como um fluxo de alto nível
  5. Preservar a funcionalidade:

    • Manter o mesmo comportamento de entrada/saída
    • Manter toda a validação e tratamento de erros
    • Preservar tipos de exceção e mensagens de erro
    • Garantir que todos os parâmetros sejam passados corretamente para os auxiliares
  6. Melhores práticas:

    • Tornar métodos auxiliares estáticos quando eles não precisam de estado de instância
    • Usar verificações de nulo (null checks) e cláusulas de guarda (guard clauses) cedo
    • Evitar a criação de variáveis locais desnecessárias
    • Considerar o uso de tuplas para múltiplos valores de retorno
    • Agrupar métodos auxiliares relacionados

Abordagem de Implementação

  • Extrair métodos auxiliares antes de refatorar o fluxo principal
  • Testar incrementalmente para garantir que não haja regressões
  • Usar nomes significativos que descrevam a responsabilidade extraída
  • Manter métodos extraídos próximos a onde são usados
  • Considerar transformar padrões de código repetidos em métodos genéricos

Resultado

O método refatorado deve:

  • Ter a complexidade cognitiva reduzida para o limite alvo de ${input:complexityThreshold} ou menos
  • Ser mais legível e de fácil manutenção
  • Ter clara separação de responsabilidades
  • Ser mais fácil de testar e depurar
  • Reter toda a funcionalidade original

Testes e Validação

CRÍTICO: Após completar a refatoração, você DEVE:

  1. Executar todos os testes existentes relacionados ao método refatorado e sua funcionalidade circundante
  2. MANDATÓRIO: Verificar explicitamente se os resultados dos testes mostram "failed=0"
    • NUNCA assuma que os testes passaram - sempre examine a saída real dos testes
    • Procure pela linha de resumo contendo as contagens de aprovação/falha (ex: "passed=X failed=Y")
    • Se o resumo mostrar qualquer número diferente de "failed=0", os testes FALHARAM
    • Se a saída dos testes estiver em um arquivo, leia o arquivo inteiro para localizar e verificar a contagem de falhas
    • Executar testes NÃO é o mesmo que verificar se os testes passaram
    • Não prossiga até que você tenha confirmado explicitamente zero falhas
  3. Se algum teste falhar (failed > 0):
    • Declare claramente quantos testes falharam
    • Analise cada falha para entender qual funcionalidade foi quebrada
    • Causas comuns: tratamento de nulo, verificações de coleção vazia, erros na lógica condicional
    • Identifique a causa raiz no código refatorado
    • Corrija o código refatorado para restaurar o comportamento original
    • Re-execute os testes e verifique "failed=0" na saída
    • Repita até que todos os testes passem (failed=0)
  4. Verificar a compilação - Certifique-se de que não há erros de compilação
  5. Verificar a complexidade cognitiva - Confirme se a métrica está no limite alvo de ${input:complexityThreshold} ou abaixo

Checklist de Confirmação

  • O código compila sem erros
  • Os resultados dos testes declaram explicitamente "failed=0" (verificado pela leitura da saída)
  • Todas as falhas de teste foram analisadas e corrigidas (se ocorreram)
  • A complexidade cognitiva está no limite alvo de ${input:complexityThreshold} ou abaixo
  • Toda a funcionalidade original foi preservada
  • O código segue as convenções e padrões do projeto
Perguntas frequentes

O que é 'complexidade cognitiva'?

É uma medida de quão difícil é para um humano entender um trecho de código. Quanto menor o número, mais fácil é de ler e entender.

O código vai parar de funcionar?

Não. A ferramenta garante que o código continue fazendo exatamente a mesma coisa. Ela também verifica se todos os testes existentes passam após a modificação.

O que são 'métodos auxiliares'?

São pequenas funções criadas pela ferramenta para realizar uma tarefa específica, ajudando a simplificar a função principal.

Detalhes

Descrição original do autor

Refactor given method `${input:methodName}` to reduce its cognitive complexity to `${input:complexityThreshold}` or below, by extracting helper methods.

repo: github/awesome-copilot

Popularidade

Estrelas no GitHub
40 mil
Posição no ranking
#5337
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas