Catégories

Analyseur de Complexite du Code

Mesure la complexite, limbrication et la duplication du code

Analyse heuristique de qualite pour JavaScript, TypeScript, Python, Java et Go.

Exemples de résultats

2 Exemples

Analyser une fonction JavaScript tres branchee

Mesure la complexite dune fonction de tarification imbriquee avec des seuils serres.

{
  "summary": {
    "language": "javascript",
    "functionCount": 1,
    "averageCyclomaticComplexity": 5,
    "averageCognitiveComplexity": 4,
    "hotspotCount": 0,
    "longFunctionCount": 0,
    "deepNestingCount": 1,
    "duplicateClusters": 0
  },
  "functions": [
    {
      "name": "score",
      "cyclomaticComplexity": 5,
      "deepNesting": true
    }
  ]
}
Voir paramètres d'entrée
{ "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 }

Reperer une logique de normalisation dupliquee en Python

Detecte des fonctions auxiliaires repetees et confirme les fenetres de duplication entre blocs similaires.

{
  "summary": {
    "language": "python",
    "functionCount": 2,
    "duplicateClusters": 1
  },
  "duplicates": [
    {
      "occurrences": 2,
      "lines": [
        1,
        6
      ]
    }
  ]
}
Voir paramètres d'entrée
{ "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 }

Points clés

Catégorie
Development
Types d’entrée
textarea, select, number
Type de sortie
json
Couverture des échantillons
4
API disponible
Yes

Vue d’ensemble

Code Complexity Analyzer mesure la complexite cyclomatique, la complexite cognitive, limbrication, les fonctions longues et la logique repetee.

Quand l’utiliser

  • Quand vous voulez un signal rapide de qualite avant revue ou refactorisation.
  • Quand un lead technique doit reperer les fonctions les plus risquées.
  • Quand vous comparez la maintenabilite de code JavaScript, TypeScript, Python, Java ou Go.
  • Quand la duplication et les structures trop imbriquees ralentissent les evolutions.

Comment ça marche

  • Collez le code et choisissez le langage ou laissez la detection automatique.
  • Loutil extrait fonctions et blocs logiques avec des heuristiques simples.
  • Il calcule ensuite branches, profondeur dimbrication et charge cognitive.
  • Le resultat remonte hotspots, duplications et pistes de refactorisation.

Cas d’usage

Prioriser des refactors avant une livraison.
Auditer du code legacy pour trouver des points sensibles.
Former une equipe a limpact du flux de controle sur la lisibilite.
Ajouter une couche legere danalyse statique au workflow.

Exemples

1. Trouver les meilleurs candidats au refactor dans un service legacy

Lead technique
Contexte
Un module backend a accumule des branches et une forte imbrication pendant des annees.
Problème
Lequipe veut savoir quelles fonctions traiter en premier.
Comment l’utiliser
Collez le code, laissez la detection automatique et consultez hotspots et duplications.
Configuration d’exemple
Langage : Auto Detect. Seuil de fonction longue : 50. Seuil dimbrication : 4.
Résultat
Lequipe obtient une vue priorisee des fonctions les plus couteuses a maintenir.

Tester avec des échantillons

development

Hubs associés

FAQ

Est-ce un analyseur AST complet ?

Non. Il sappuie sur des heuristiques pratiques pour donner rapidement des signaux utiles.

Quels langages sont pris en charge ?

JavaScript, TypeScript, Python, Java et Go sont pris en charge, avec detection automatique.

Peut-il trouver du code duplique ?

Oui. Il recherche des fenetres de lignes normalisees qui se repetent.

Donne-t-il des recommandations ?

Oui. Les hotspots peuvent inclure des conseils pour reduire les branches, extraire des helpers ou simplifier le flux.

Documentation de l'API

Point de terminaison de la requête

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

Paramètres de la requête

Nom du paramètre Type Requis Description
sourceCode textarea Oui -
language select Non -
longFunctionThreshold number Non -
nestingThreshold number Non -
duplicateWindow number Non -

Format de réponse

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

Documentation de MCP

Ajoutez cet outil à votre configuration de serveur MCP:

{
  "mcpServers": {
    "elysiatools-code-complexity-analyzer": {
      "name": "code-complexity-analyzer",
      "description": "Mesure la complexite, limbrication et la duplication du code",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=code-complexity-analyzer",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Vous pouvez chaîner plusieurs outils, par ex.: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, max 20 outils.

Si vous rencontrez des problèmes, veuillez nous contacter à [email protected]