Arcovia : Outil d’intelligence architecturale basé sur des règles pour les applications React
Découvrez comment un projet de hackathon analyse les bases de code React et Next.js à l’aide de règles déterministes afin d’évaluer la santé de l’architecture et de mettre en évidence les dettes techniques cachées.
Le défi qui a donné naissance à ce projet
Lors d’un hackathon récent organisé pendant la OpenAI Build Week, une équipe s’est fixée un objectif simple : créer quelque chose que les développeurs voudraient vraiment utiliser au quotidien.
Déjà à la fin du premier soir, le concept était clair. En deux jours supplémentaires, ce concept s’est transformé en un projet open source fonctionnel nommé Arcovia.
Le manque d’outils existants
De nombreux outils fiables existent déjà pour maintenir le code propre.
- ESLint met en évidence les schémas problématiques.
- Prettier s’occupe du formatage.
- SonarQube révèle les problèmes de qualité.
- Des outils d’analyse basés sur l’IA proposent des améliorations au niveau de chaque ligne.
Pourtant, aucun de ces outils ne peut répondre à des questions plus structurelles telles que :
- L’architecture globale est-elle en bon état ?
- Quels modules deviennent des points de blocage ?
- Où s’accumule la dette technique ?
- Quels fichiers méritent en premier lieu d’être refactorisés ?
- Qu’est-ce qui a réellement entraîné le score d’un projet donné ?
Les problèmes architecturaux ont tendance à apparaître uniquement lors des discussions de revue de code, ou pire, une fois que la base de code devient déjà difficile à gérer. Ce qui manquait, c’était un moyen d’évaluer la santé d’une architecture avant qu’elle ne devienne un véritable fardeau.
Découvrez Arcovia
Arcovia est décrit comme un outil d’intelligence architecturale conçu pour les bases de code React et Next.js.
Au lieu de vous submerger d’une longue liste d’avertissements non liés entre eux, il évalue le projet de manière holistique et génère un rapport HTML interactif.
Celui-ci comprend :
- Un score de santé de l’architecture
- Un graphe de dépendances
- Les points critiques de l’architecture
- Une explication détaillée de la méthode utilisée pour calculer ce score
- Des résultats basés sur des règles
- Un indicateur de charge de maintenance
- Des recommandations concrètes
Arcovia ne cherche pas à remplacer les outils de vérification syntaxique. Son but est de permettre aux développeurs de voir l’ensemble structurel global que les règles individuelles ne peuvent pas capturer.
Dans le détail
L’outil met en œuvre en interne un pipeline d’analyse entièrement déterministe.
Project
│
▼
Scanner
│
▼
AST Parser
│
▼
Project Model
│
▼
Dependency Graph
│
▼
Rule Engine
│
▼
Score Engine
│
▼
Interactive HTML Report
L’analyste est actuellement capable de signaler une série de problèmes structurels. Parmi eux :
- Des « modules divins » trop centraux dont l’application dépend excessivement
- Des composants ou fichiers présentant un fort taux d’entrées
- Des composants ou fichiers présentant un fort taux de sorties
Au lieu de lister ces constats isolément, Arcovia les regroupe en un seul score d’architecture facile à interpréter.
Les règles en premier, l’IA en second
L’une des décisions pour lesquelles les créateurs sont particulièrement satisfaits est d’exclure l’IA de la logique d’analyse principale.
Le score d’architecture lui-même n’est jamais généré par un modèle de langage.
Au lieu de cela, Arcovia fonctionne en :
- analyseant le codebase à l’aide de son AST
- créer des graphes de dépendances
- faisant passer les résultats par des règles architecturales déterministes
- calculant des scores pour chaque catégorie
Grâce à cette conception, les résultats restent cohérents et reproductibles.
Le plan global consiste à utiliser l’IA pour améliorer l’expérience utilisateur plutôt que de laisser l’IA gérer elle-même l’évaluation. Les utilisations prévues incluent :
- Expliquer les résultats individuels en langage simple
- Proposer des approches de refacturation
- Indiquer des ressources pédagogiques pertinentes
- Répondre aux questions supplémentaires concernant le rapport
L’analyse déterministe reste la seule source de vérité, avec l’IA ajoutée en tant qu’interprète.
Travailler avec GPT-5.6 et Codex
Cet hackathon a également marqué la première fois où l’équipe a fait appel à l’IA en tant que véritable collaborateur tout au long du développement, plutôt que de la considérer comme un simple complétion automatique amélioré.
Pendant le week-end, GPT-5.6 et Codex ont été utilisés pour :
- faire un brainstorming sur les règles architecturales à inclure
- affiner la manière dont le modèle de notation pondère les différents signaux
- mettre en œuvre des fonctionnalités individuelles
- améliorer la conception visuelle du rapport
- simplifier des logiques complexes
- vérifier la pertinence des décisions de mise en œuvre
ChatGPT Images a également été utilisé pour concevoir l’identité visuelle d’Arcovia, y compris son mascotte en hibou, son logo et les autres supports de lancement.
Le flux de travail global s’est avéré plus naturel que prévu. Plutôt que de confier des fonctionnalités entières à être générées du début à la fin, les plus grands avantages sont venus d’itérations rapides et répétées, similaires à avoir un deuxième ingénieur disponible pour discuter des options de conception et évaluer les compromis.
Leçons tirées du week-end
La compression de cette version en un seul week-end a révélé plusieurs leçons utiles.
L’architecture résiste aux métriques simples
Évaluer la qualité du code de manière isolée est assez mécanique.
Évaluer l’architecture est bien plus difficile, car cela dépend du contexte, des compromis à considérer et d’un ajustement précis des poids selon de nombreuses règles différentes.
Trouver l’équilibre idéal entre des indicateurs véritablement utiles et de faux positifs perturbants reste un effort constant en cours.
Un score sans contexte n’est pas utile
Donner simplement un chiffre à quelqu’un ne lui en dit pas beaucoup.
Les développeurs doivent pouvoir voir :
- pourquoi le score est ce qu’il est
- quels facteurs ont eu le plus d’impact
- quelles problématiques pèsent le plus lourd
- ce qu’il faut traiter en premier
C’est la raison pour laquelle le rapport a été conçu pour expliquer la note, plutôt que de la présenter comme un résultat opaque.
L’IA accélère les choses, mais pas comme on pourrait s’y attendre
GPT-5.6 et Codex ont clairement accéléré le processus de création.
Pourtant, la plus grande amélioration en termes de productivité ne provient pas d’une génération de code plus rapide.
Celui-ci vient plutôt de l’utilisation de l’IA comme partenaire de réflexion : analyser les choix de conception, remettre en question les hypothèses et tester rapidement différentes idées.
Que vient ensuite ?
Cette version n’est qu’un point de départ.
Les fonctionnalités envisagées pour les versions futures incluent :
- Une intégration avec GitHub Action
- Un suivi de l’historique des rapports
- Une analyse des tendances architecturales dans le temps
- Un extension pour VS Code
- Une comparaison de projets côte à côte
- Des tableaux de bord pour toute l’équipe
- Un accompagnement architectural piloté par l’IA
L’objectif à long terme est d’aider les équipes d’ingénierie à surveiller, mesurer et améliorer continuellement l’architecture de leurs logiciels au fil du temps.
Les retours sont les bienvenus
Arcovia est entièrement open source, et les retours des développeurs qui créent activement des applications React ou Next.js seraient particulièrement précieux.
Quelques questions à explorer :
- L’évaluation de l’architecture reflète-t-elle vraiment quelque chose d’important ?
- Quels autres problèmes architecturaux devraient être détectés ?
- Qu’est-ce qui rendrait un rapport comme celui-ci véritablement utile dans votre workflow quotidien ?
Le code source du projet se trouve dans son répertoire sur github.com/gkhan205/arcovia ; le paquet peut être installé directement depuis npmjs.com/package/arcovia, et la documentation complète est hébergée sur arcovia.ghazikhan.in.
Toutes les idées, retours d’expérience et même les objections sont sincèrement les bienvenus, car une utilisation réelle est le moyen le plus efficace d’améliorer Arcovia au fil du temps.
Lectures complémentaires
- 20 patterns avancés de Next.js pour des applications App Router de qualité professionnelle — Découvrez vingt patterns de niveau avancé pour Next.js couvrant la conception server-first, le streaming, le cache, le routage et les performances, afin de créer des applications professionnelles plus rapides et scalables.