Categorías

Analizador de Complejidad de Codigo

Analiza complejidad ciclomatica, cognitiva, anidamiento y duplicacion

Evalua calidad de codigo en JavaScript, TypeScript, Python, Java y Go.

Resultados de ejemplo

2 Ejemplos

Analizar una funcion JavaScript con muchas ramas

Mide complejidad ciclomatica y cognitiva en una funcion de precios anidada con umbrales estrictos.

{
  "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 }

Detectar logica duplicada de normalizacion en Python

Encuentra funciones repetidas tipo helper y confirma ventanas duplicadas entre bloques similares.

{
  "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 }

Datos clave

Categoría
Development
Tipos de entrada
textarea, select, number
Tipo de salida
json
Cobertura de muestras
4
API disponible
Yes

Resumen

Code Complexity Analyzer evalua complejidad ciclomatica, complejidad cognitiva, anidamiento, funciones largas y logica repetida con heuristicas practicas.

Cuándo usarlo

  • Cuando quieres una senal rapida de calidad antes de revisar o refactorizar.
  • Cuando lideres tecnicos necesitan detectar funciones de alto riesgo.
  • Cuando comparas mantenibilidad entre JavaScript, TypeScript, Python, Java y Go.
  • Cuando la logica duplicada y el anidamiento profundo frenan al equipo.

Cómo funciona

  • Pegas el codigo y eliges el lenguaje o activas deteccion automatica.
  • La herramienta extrae funciones o bloques logicos con heuristicas.
  • Luego calcula ramificaciones, profundidad y carga cognitiva.
  • El resultado incluye hotspots, duplicados y sugerencias concretas.

Casos de uso

Priorizar refactors antes de una entrega.
Revisar codigo legado para ubicar zonas de riesgo.
Ensenar al equipo como el flujo de control afecta la legibilidad.
Agregar analisis ligero a un flujo de ingenieria.

Ejemplos

1. Detectar objetivos de refactor en un modulo legado

Lider tecnico
Contexto
Un servicio backend crecio durante anos con muchas condiciones y anidamiento.
Problema
El equipo necesita saber que funciones deben refactorizarse primero.
Cómo usarlo
Pega el codigo, deja la deteccion automatica y revisa hotspots y duplicados.
Configuración de ejemplo
Lenguaje: Auto Detect. Umbral de funcion larga: 50. Umbral de anidamiento: 4.
Resultado
El equipo obtiene una lista priorizada de funciones con mayor riesgo de mantenimiento.

Probar con muestras

development

Hubs relacionados

Preguntas frecuentes

Es un analizador AST completo?

No. Usa heuristicas practicas para ofrecer senales utiles sin una infraestructura pesada.

Que lenguajes soporta?

Soporta JavaScript, TypeScript, Python, Java y Go, con deteccion automatica.

Puede detectar codigo duplicado?

Si. Busca ventanas repetidas de lineas normalizadas para detectar posibles copias.

Incluye sugerencias de mejora?

Si. Los hotspots pueden venir con recomendaciones para reducir ramas, extraer helpers o aplanar flujo.

Documentación de la API

Punto final de la solicitud

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

Parámetros de la solicitud

Nombre del parámetro Tipo Requerido Descripción
sourceCode textarea -
language select No -
longFunctionThreshold number No -
nestingThreshold number No -
duplicateWindow number No -

Formato de respuesta

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

Documentación de MCP

Agregue este herramienta a su configuración de servidor MCP:

{
  "mcpServers": {
    "elysiatools-code-complexity-analyzer": {
      "name": "code-complexity-analyzer",
      "description": "Analiza complejidad ciclomatica, cognitiva, anidamiento y duplicacion",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=code-complexity-analyzer",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Puede encadenar múltiples herramientas, por ejemplo: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, máximo 20 herramientas.

Si encuentra algún problema, por favor, póngase en contacto con nosotros en [email protected]