Chapitre 5

Paradigme d’architecture adapté à l’IA

Apprendre à concevoir des patterns d’architecture adaptés à la génération de code par l’IA, afin que l’IA devienne un atout pour l’architecture plutôt qu’un obstacle.

Idée clé : l’architecture, c’est le contexte

À l’ère de la programmation assistée par l’IA,La conception de l’architecture doit prendre en compte les caractéristiques de l’IA. Une bonne architecture devrait faciliter la compréhension et la génération de code par l’IA, plutôt que d’ajouter de la complexité. Ce chapitre présente quatre paradigmes architecturaux adaptés à l’IA.

Clean Architecture with AI

La structure en couches de Clean Architecture se prête naturellement à la génération et à la maintenance par blocs avec l’IA, chaque couche ayant des limites de responsabilité claires.

L’IA génère les interfaces et implémentations de chaque couche

La structure en couches de Clean Architecture permet à l’IA de se concentrer sur la génération de code d’une seule couche.

Entities (couche entité)

L’IA génère des entités de domaine en fonction des besoins métier, y compris les règles métier et la logique de validation

  • • Logique métier pure, sans dépendances externes
  • • L’IA peut générer du code d’entité à partir du modèle de domaine
Use Cases (couche des cas d’usage)

L’IA génère les implémentations de cas d’utilisation à partir des user stories, en coordonnant les couches entité et interface

  • • Mettre en œuvre des cas d’usage métier concrets
  • • L’IA peut générer du code de cas d’utilisation à partir du PRD
Interfaces (couche d’interface)

L’IA génère des implémentations d’adaptateurs à partir des spécifications d’interface et se connecte aux systèmes externes

  • • Implémenter l’adaptation d’interfaces externes
  • • L’IA peut générer du code d’interface à partir de la documentation API

Vérifications IA basées sur des règles

L’IA peut vérifier automatiquement si le code respecte les règles de dépendance de Clean Architecture.

Règles de dépendance
  • La couche interne ne dépend pas de la couche externe, la couche externe dépend de la couche interne
  • La direction des dépendances ne peut être que vers l’intérieur, pas vers l’extérieur
  • La couche entité ne dépend d’aucune autre couche
Capacité de vérification par IA
  • • Analyser les dépendances du code et détecter les dépendances interdites
  • • Générer des diagrammes de dépendances pour visualiser l’architecture
  • • Proposer des suggestions de refactorisation et corriger les problèmes de dépendances

Avantages : découplage entre les couches, adapté à la génération par morceaux et à la maintenance par l'IA

Isolation du contexte
Chaque couche a une responsabilité claire, et lorsque l’IA génère du code, elle n’a besoin de se concentrer que sur le contexte de la couche actuelle
Développement en parallèle
Différentes couches peuvent être générées en parallèle, ce qui améliore l’efficacité de développement
Facile à maintenir
Lors de la modification d’une couche, l’IA n’a besoin de se concentrer que sur le code de cette couche et n’affectera pas les autres couches

CDD (Component-Driven Development)

Le Component-Driven Development met l’accent sur la construction des applications à partir de composants, et cette approche ascendante se prête très bien à la génération par IA.

Conception assistée par l’IA des composants atomiques (Atomic Design)

Atomic Design divise les composants en cinq niveaux : atomes, molécules, organismes, templates et pages, et l’IA peut commencer à générer à partir des composants atomiques les plus simples.

Atome
Button, Input
Molécule
SearchBox
Organisation
Header, Footer
Modèle
Page Layout
Page
Complete Page
Flux de génération par IA
1. Commencer par des composants atomiques et laisser l’IA générer les composants UI de base
2. Combiner des composants atomiques pour générer des composants moléculaires
3. Combiner des composants moléculaires pour générer des composants organisationnels
4. Composer et organiser des composants pour générer des modèles de page
5. Générer une page complète basée sur le modèle

Générer automatiquement la documentation et les tests Storybook

L’IA peut générer automatiquement la documentation Storybook et des cas de test pour chaque composant.

Documentation Storybook
  • • L’IA analyse les Props du composant et génère des fichiers Story
  • • Générer automatiquement des Stories dans différents états
  • • Générer la documentation d’utilisation des composants
  • • Générer un exemple de code de composant
Cas de test
  • • Génération de tests unitaires par IA
  • • Générer des tests de régression visuelle
  • • Générer des tests d’interaction
  • • Générer des tests d’accessibilité

Avantage : isolation du contexte, l’IA se concentre sur l’implémentation d’un seul composant

Isolation des composants
Chaque composant est indépendant, et lors de la génération par IA, il suffit de se concentrer sur les Props et les fonctionnalités du composant
Réutilisabilité
Les composants générés peuvent être réutilisés à plusieurs endroits, ce qui améliore l'efficacité du développement
Facile à tester
Les tests au niveau des composants sont plus faciles à écrire et à maintenir

Spec-First Development

Le Spec-First Development met l’accent sur la rédaction d’abord des spécifications, puis sur la génération du code, les spécifications devenant la « source de vérité » de l’IA.

Flux de génération PRD → OpenAPI Spec → Code

1

Document PRD

Rédiger un document de spécifications produit, en définissant les fonctionnalités et les règles métier

2

OpenAPI Spec

Générer des spécifications OpenAPI à partir du PRD et définir les interfaces API

3

Génération de code

L’IA génère le code client et serveur à partir de la spécification OpenAPI

Avantage : utiliser Spec comme « source de vérité » de l’IA

Source de vérité unique

OpenAPI Spec est la source unique de vérité de l’API ; le frontend, le backend et la documentation sont tous générés à partir du même Spec, garantissant la cohérence

Sécurité des types

Spec définit des informations de type complètes, et le code généré par l’IA est intrinsèquement typé en toute sécurité

Synchronisation automatique

Lorsque le Spec est mis à jour, l’IA peut automatiquement mettre à jour tout le code associé pour rester synchronisée

Capacités de génération de l’IA
  • • Générer des définitions de types TypeScript à partir de la Spec
  • • Générer le code du client API
  • • Générer des routes et des contrôleurs côté serveur
  • • Générer la documentation API et des données mock
  • • Générer des cas de test d’intégration

Micro-Agent Pattern

Le Micro-Agent Pattern découpe des fonctionnalités complexes en plusieurs agents spécialisés, chacun étant responsable d’une tâche spécifique.

Décomposer les fonctionnalités complexes en un réseau de collaboration multi-Agent

Décomposer une grande tâche en plusieurs sous-tâches, chacune prise en charge par un Agent dédié, les Agents collaborant par échange de messages.

Types d'agent
Agent architecte
Responsable de la conception du système et des décisions d’architecture
Agent expert du domaine
Responsable de la logique métier et des connaissances du domaine
Agent de revue
Responsable de la revue de code et des contrôles qualité
Processus de collaboration
1. L’agent architecte analyse les besoins et élabore une proposition d’architecture
2. L'agent expert du domaine implémente la logique métier
3. L’agent de revue vérifie la qualité du code et propose des améliorations
4. Les agents collaborent par échange de messages pour accomplir des tâches complexes

Agent architecte + agent expert du domaine + agent de revue

Agent architecte
  • • Analyser les exigences du système et concevoir l’architecture globale
  • • Choisir la bonne pile technologique et les bons modèles de conception
  • • Définir les frontières des modules et les spécifications des interfaces
  • • Élaborer un plan de développement et décomposer les tâches
Agent expert du domaine
  • • Comprendre les besoins métier et implémenter la logique métier
  • • Appliquer les principes du domain-driven design
  • • Générer des modèles de domaine et du code métier
  • • Garantir que le code respecte les règles métier
Agent de revue
  • • Vérifier la qualité du code et les normes
  • • Identifier les problèmes et risques potentiels
  • • Proposer des suggestions de refactoring et d’optimisation
  • • Veiller à ce que le code soit conforme à la conception de l’architecture

Avantage : une répartition spécialisée du travail améliore la qualité du code

Spécialisation
Chaque Agent se concentre sur son domaine, améliorant ainsi l’expertise et la précision
Évolutif
Peut ajouter de nouveaux Agents selon les besoins pour étendre les capacités du système
Assurance qualité
Examiner l’Agent pour garantir la qualité du code et réduire les erreurs et les défauts

Résultats d’apprentissage

À la fin de ce chapitre, vous pourrez :

  • 1Comprendre comment Clean Architecture s’adapte à la génération de code par IA et maîtriser les stratégies de génération de code en couches
  • 2Maîtriser le mode de travail du Component-Driven Development et utiliser l'IA pour aider à la conception des composants
  • 3Comprendre la valeur du Spec-First Development et être capable de mettre en place un processus de développement guidé par des spécifications
  • 4Maîtriser la philosophie de conception du Micro-Agent Pattern et être capable de concevoir des systèmes de collaboration multi-agents
  • 5Être capable de choisir le paradigme d’architecture d’adaptation IA approprié en fonction des caractéristiques du projet