Datos clave
- Categoría
- Desarrollo y Web
- Tipos de entrada
- textarea, select, number
- Tipo de salida
- json
- Cobertura de muestras
- 4
- API disponible
- Yes
Resumen
Herramienta online para evaluar métricas de calidad en código fuente. Analiza complejidad ciclomática, complejidad cognitiva, niveles de anidamiento y fragmentos duplicados en JavaScript, TypeScript, Python, Java y Go, generando un informe JSON detallado con puntos críticos y estadísticas por función.
Cuándo usarlo
- •Antes de solicitar revisión de código para identificar funciones candidatas a refactorización.
- •Al heredar proyectos legacy que requieren evaluación rápida de hotspots y deuda técnica.
- •Durante la definición de estándares de equipo para establecer umbrales máximos de complejidad.
Cómo funciona
- •Pega el código fuente en el área de texto; el sistema detecta automáticamente el lenguaje o puedes seleccionarlo manualmente entre JavaScript, TypeScript, Python, Java y Go.
- •Ajusta los umbrales opcionales para funciones largas, anidamiento profundo y ventanas de duplicación según tus estándares de calidad.
- •El analizador escanea cada función calculando métricas de complejidad ciclomática y cognitiva, además de buscar patrones de código repetido.
- •Recibes un objeto JSON con resumen global y lista detallada de funciones, incluyendo flags de anidamiento profundo y clusters de duplicados detectados.
Casos de uso
Ejemplos
1. Revisión de lógica de precios compleja en JavaScript
Desarrollador frontend- Contexto
- Preparando un merge request con nueva funcionalidad de descuentos dinámicos que incluye múltiples condicionales anidados.
- Problema
- Necesita verificar si la función de cálculo viola políticas de complejidad máxima antes de la revisión por pares.
- Cómo usarlo
- Pega la función en 'Código fuente', selecciona JavaScript manualmente y establece 'Umbral de anidamiento' en 2 niveles para detectar anidamiento profundo.
- Configuración de ejemplo
-
{"language": "javascript", "nestingThreshold": 2, "longFunctionThreshold": 8} - Resultado
- El informe JSON detecta anidamiento profundo (deepNesting: true) y complejidad ciclomática de 5, alertando sobre la necesidad de simplificar condicionales antes del merge.
2. Eliminación de helpers duplicados en Python
Ingeniero de backend- Contexto
- Manteniendo scripts de ETL con múltiples funciones de normalización de datos que fueron creadas mediante copy-paste.
- Problema
- Detectar funciones casi idénticas (normalize_user vs normalize_admin) que deberían unificarse para reducir deuda técnica.
- Cómo usarlo
- Inserta ambas funciones en el campo de código, selecciona Python y reduce 'Ventana de duplicación' a 3 líneas para capturar bloques repetidos pequeños.
- Configuración de ejemplo
-
{"language": "python", "duplicateWindow": 3} - Resultado
- El JSON identifica 1 cluster de duplicados entre líneas 1-6, permitiendo al equipo consolidar la lógica en una única función utilitaria y eliminar código redundante.
3. Control de longitud en handlers de Go
Arquitecto de software- Contexto
- Auditando handlers HTTP en un microservicio gateway que han crecido descontroladamente durante iteraciones rápidas.
- Problema
- Identificar handlers que exceden 50 líneas para dividirlos en middlewares especializados y mejorar la testabilidad.
- Cómo usarlo
- Pega el código del handler, selecciona Go y configura 'Umbral de función larga' en 50 líneas para flaggear funciones excesivamente extensas.
- Configuración de ejemplo
-
{"language": "go", "longFunctionThreshold": 50} - Resultado
- El resumen JSON lista las funciones que superan el umbral con sus métricas exactas de complejidad, facilitando la planificación priorizada de la refactorización.
Probar con muestras
developmentHubs relacionados
Preguntas frecuentes
¿Qué lenguajes de programación soporta el analizador?
JavaScript, TypeScript, Python, Java y Go. Puedes usar detección automática o especificar el lenguaje manualmente en el selector.
¿Qué diferencia hay entre complejidad ciclomática y cognitiva?
La complejidad ciclomática mide los caminos de ejecución independientes (ramas if, switch, loops). La complejidad cognitiva evalúa la dificultad de lectura según niveles de anidamiento y estructuras lógicas anidadas.
¿Para qué sirve el parámetro 'Ventana de duplicación'?
Define el número mínimo de líneas consecutivas idénticas que deben coincidir para reportar un bloque como código duplicado, permitiendo ajustar la sensibilidad del detector.
¿El análisis modifica mi código fuente original?
No, es una herramienta de solo lectura que genera un informe JSON con métricas y estadísticas sin alterar el código ingresado.
¿Qué significa 'deepNesting' en el resultado JSON?
Indica que la función excede el umbral configurado de niveles de anidamiento (por defecto 4), señalando código difícil de mantener y probar.