Categorias

Analisador de Complexidade de Codigo

Analisa complexidade ciclomatica, cognitiva, aninhamento e duplicacao

Analise heuristica de qualidade para JavaScript, TypeScript, Python, Java e Go.

Exemplos de resultados

2 Exemplos

Analisar uma funcao JavaScript com muitos ramos

Mede complexidade ciclomatica e cognitiva de uma funcao de precificacao aninhada com limites mais rigidos.

{
  "summary": {
    "language": "javascript",
    "functionCount": 1,
    "averageCyclomaticComplexity": 5,
    "averageCognitiveComplexity": 4,
    "hotspotCount": 0,
    "longFunctionCount": 0,
    "deepNestingCount": 1,
    "duplicateClusters": 0
  },
  "functions": [
    {
      "name": "score",
      "cyclomaticComplexity": 5,
      "deepNesting": true
    }
  ]
}
Ver parâmetros de entrada
{ "sourceCode": "function score(order) {\n if (!order) return 0;\n let total = 0;\n for (const item of order.items) {\n if (item.discount) {\n total += item.price * 0.8;\n } else if (item.vip) {\n total += item.price * 0.9;\n } else {\n total += item.price;\n }\n }\n return total;\n}", "language": "javascript", "longFunctionThreshold": 8, "nestingThreshold": 2, "duplicateWindow": 4 }

Identificar logica duplicada de normalizacao em Python

Detecta funcoes auxiliares repetidas e confirma janelas duplicadas entre blocos parecidos.

{
  "summary": {
    "language": "python",
    "functionCount": 2,
    "duplicateClusters": 1
  },
  "duplicates": [
    {
      "occurrences": 2,
      "lines": [
        1,
        6
      ]
    }
  ]
}
Ver parâmetros de entrada
{ "sourceCode": "def normalize_user(row):\n email = row[\"email\"].strip().lower()\n if not email:\n return None\n return {\"email\": email, \"team\": row.get(\"team\", \"general\")}\n\ndef normalize_admin(row):\n email = row[\"email\"].strip().lower()\n if not email:\n return None\n return {\"email\": email, \"team\": row.get(\"team\", \"general\")}", "language": "python", "longFunctionThreshold": 20, "nestingThreshold": 3, "duplicateWindow": 3 }

Fatos principais

Categoria
Development
Tipos de entrada
textarea, select, number
Tipo de saída
json
Cobertura de amostras
4
API disponível
Yes

Visão geral

Code Complexity Analyzer avalia complexidade ciclomatica, complexidade cognitiva, aninhamento, funcoes longas e logica repetida com heuristicas praticas.

Quando usar

  • Quando voce precisa de um sinal rapido de qualidade antes de revisar ou refatorar.
  • Quando lideres tecnicos querem localizar funcoes de maior risco.
  • Quando deseja comparar manutencao entre JavaScript, TypeScript, Python, Java e Go.
  • Quando duplicacao e aninhamento profundo estao atrasando o time.

Como funciona

  • Cole o codigo e escolha a linguagem ou use deteccao automatica.
  • A ferramenta extrai funcoes e blocos logicos com heuristicas leves.
  • Depois calcula ramificacoes, profundidade e carga cognitiva.
  • O resultado traz hotspots, duplicacoes e sugestoes de refatoracao.

Casos de uso

Priorizar refatoracoes antes de uma entrega.
Revisar codigo legado para encontrar pontos de manutencao dificil.
Ensinar como fluxo de controle afeta legibilidade.
Adicionar analise estatica leve ao processo de engenharia.

Exemplos

1. Encontrar alvos de refatoracao em um servico legado

Lider tecnico
Contexto
Um modulo backend cresceu por anos com muitas condicoes e blocos aninhados.
Problema
A equipe precisa decidir o que refatorar primeiro.
Como usar
Cole o codigo, mantenha a deteccao automatica e revise hotspots e duplicacoes.
Configuração de exemplo
Linguagem: Auto Detect. Limite de funcao longa: 50. Limite de aninhamento: 4.
Resultado
A equipe recebe uma lista priorizada das funcoes mais arriscadas para manutencao.

Testar com amostras

development

Hubs relacionados

FAQ

Isso e um analisador AST completo?

Nao. Ele usa heuristicas praticas para gerar sinais rapidos e uteis.

Quais linguagens sao suportadas?

JavaScript, TypeScript, Python, Java e Go sao suportados, com deteccao automatica.

Ele detecta codigo duplicado?

Sim. Ele procura janelas repetidas de linhas normalizadas.

Ha sugestoes de melhoria?

Sim. Funcoes problemáticas podem receber orientacoes para reduzir ramos, extrair helpers ou simplificar o fluxo.

Documentação da API

Ponto final da solicitação

POST /pt/api/tools/code-complexity-analyzer

Parâmetros da solicitação

Nome do parâmetro Tipo Requerido Descrição
sourceCode textarea Sim -
language select Não -
longFunctionThreshold number Não -
nestingThreshold number Não -
duplicateWindow number Não -

Formato de resposta

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
Dados JSON: Dados JSON

Documentação de MCP

Adicione este ferramenta à sua configuração de servidor MCP:

{
  "mcpServers": {
    "elysiatools-code-complexity-analyzer": {
      "name": "code-complexity-analyzer",
      "description": "Analisa complexidade ciclomatica, cognitiva, aninhamento e duplicacao",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=code-complexity-analyzer",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Você pode encadear várias ferramentas, ex: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, máx 20 ferramentas.

Se você encontrar algum problema, por favor, entre em contato conosco em [email protected]