Chapitre 4

Mode de développement natif IA

Maîtrisez les paradigmes de développement de l’ère de l’IA, de TDD 2.0 à Agent-Driven Development, et faites de l’IA votre meilleur partenaire de développement.

Idée clé : la pensée native à l’IA

À l’ère de la programmation assistée par l’IA,Le mode développement nécessite une refonte. Les méthodes de développement traditionnelles doivent s’adapter aux capacités et aux caractéristiques de l’IA pour en tirer toute leur valeur. Ce chapitre présentera quatre modes de développement natifs de l’IA afin de vous aider à adopter une nouvelle manière de penser le développement.

TDD (Test-Driven Development) 2.0

Le TDD traditionnel suit un cycle rouge-vert-refactorisation, et l’ère de l’IA rend ce cycle plus rapide et plus intelligent.

Cas de test générés par IA (Given-When-Then)

Utilisez des cas de test au format BDD (Behavior-Driven Development) pour permettre à l’IA de mieux comprendre les exigences et de générer des tests.

Format Given-When-Then
Given L’utilisateur est connecté
When L’utilisateur a cliqué sur le bouton « Passer la commande »
Then Le système crée une commande et renvoie le numéro de commande
Avantages de l’IA
  • L’IA peut générer rapidement un grand nombre de cas de test, couvrant les cas limites
  • Le format Given-When-Then permet à l’IA de mieux comprendre l’intention des tests
  • Les cas de test sont la documentation, et l’IA peut générer du code d’implémentation à partir des tests

Mécanisme d’accélération par l’IA du cycle rouge-vert-refactorisation

Rouge

Écrire des tests

L’IA génère des cas de test à partir des besoins, couvrant rapidement les fonctionnalités

Vert

Écrire l’implémentation

L’IA génère une implémentation minimale viable à partir des cas de test, afin de faire passer rapidement les tests

Refactorisation

Optimiser le code

L'IA analyse la qualité du code, propose des suggestions de refactorisation et effectue des optimisations

En pratique : faire écrire d’abord les tests par l’IA, puis l’implémentation

Étape 1 : Décrire les besoins
"Implémentez une fonctionnalité de connexion utilisateur nécessitant de vérifier le nom d’utilisateur et le mot de passe"
Étape 2 : l’IA génère des cas de test
L’IA génère des cas de test au format Given-When-Then en fonction des exigences
Étape 3 : l’IA génère le code d’implémentation
L’IA génère une implémentation minimale viable à partir des cas de test pour garantir la réussite des tests
Étape 4 : optimisation du refactoring par l’IA
L’IA analyse la qualité du code, propose des suggestions de refactoring et les exécute

DDD (Domain-Driven Design) with AI

La conception pilotée par le domaine exige une compréhension approfondie du domaine métier, et l’IA peut nous aider à mieux en extraire les connaissances.

Utiliser l’IA pour extraire un langage ubiquitaire

Le langage omniprésent est au cœur du DDD, et l’IA peut nous aider à extraire les termes du domaine à partir des documents métier.

Flux de travail assisté par l’IA
  • 1.Saisir des documents métier, des documents d’exigences et des user stories
  • 2.L’IA analyse les documents et extrait les termes et concepts du domaine
  • 3.L’IA identifie les synonymes et les relations entre les termes
  • 4.Générer un dictionnaire linguistique unifié afin de garantir une terminologie cohérente au sein de l’équipe

Découpage assisté par l’IA des contextes bornés (Bounded Contexts)

Le contexte délimité est le concept le plus important du DDD, et l’IA peut aider à identifier et à délimiter les frontières du contexte.

Identifier le contexte
  • • L’IA analyse les domaines d’activité et identifie différents contextes métier
  • • Identifier les dépendances entre les contextes
  • • Identifier les modèles de cartographie du contexte (noyau partagé, client-fournisseur, etc.)
Diviser les limites
  • • L’IA propose un schéma de découpage des frontières de contexte
  • • Identifier les points d’intégration entre les contextes
  • • Générer une carte de contexte

Stratégie de génération de code pour entité/objet valeur/racine d’agrégat

L’IA peut générer automatiquement la structure de code des entités, des objets valeur et des racines d’agrégat à partir du modèle de domaine.

Entité (Entity)

L’IA identifie les objets métier dotés d’identifiants uniques et génère des classes d’entité et des attributs ID

Objet valeur (Value Object)

L’IA identifie les types de valeurs immuables et génère des classes d’objets valeur ainsi que la logique de validation

Racine d’agrégat (Aggregate Root)

L’IA identifie les frontières des agrégats et génère les classes de racine d’agrégat ainsi que les règles métier

ADD (Agent-Driven Development)

Agent-Driven Development est un nouveau paradigme de développement dans lequel plusieurs agents IA collaborent pour accomplir des tâches de développement.

Boucle Plan-Execute-Evaluate

Plan

Phase de planification

L’agent architecte analyse les besoins, élabore un plan de développement et découpe les tâches

Execute

Phase d’exécution

L'agent de codage génère le code à partir du plan, et l'agent de test génère les cas de test

Evaluate

Phase d’évaluation

L'agent de revue vérifie la qualité du code, propose des améliorations et optimise de manière itérative

Modèle de collaboration multi-agents

Agent architecte
  • • Analyser les besoins
  • • Concevoir l’architecture
  • • Élaborer un plan
Agent de codage
  • • Générer du code
  • • Implémenter des fonctionnalités
  • • Optimisation du code
Agent de test
  • • Générer des tests
  • • Exécuter les tests
  • • Contrôle qualité

RAG-DD (RAG-Driven Development)

RAG-Driven Development utilise une base de connaissances privée pour renforcer les capacités de génération de code de l’IA, afin qu’elle génère du code à partir des connaissances et de l’expérience de l’équipe.

Génération de code basée sur une base de connaissances privée

Transformer les documents d’architecture de l’équipe, les modèles de conception, les meilleures pratiques et autres connaissances en base de connaissances afin que l’IA puisse s’y référer lors de la génération de code.

Contenu de la base de connaissances
  • Documents de conception d’architecture et modèles de conception
  • Conventions de code et bonnes pratiques
  • Expérience des projets passés et enseignements tirés
  • La pile technique et la chaîne d’outils de l’équipe
Flux de travail
1. L’utilisateur présente les besoins
2. Récupérer les connaissances pertinentes dans le système RAG
3. L’IA génère du code à partir des connaissances récupérées
4. Le code généré est conforme à l’architecture et aux normes de l’équipe

La documentation d’architecture constitue le contexte

Utilisez les documents d’architecture comme contexte central du système RAG afin de garantir que le code généré est conforme à la conception de l’architecture.

Types de documents d'architecture
  • • Schémas d’architecture système et documents de choix techniques
  • • Normes de conception d’API et documentation d’interface
  • • Conception de base de données et modèles de données
  • • Découpage des microservices et frontières des services
  • • Normes de sécurité et modèle d’autorisations
Avantages
  • Le code généré est automatiquement conforme à la conception de l’architecture
  • Réduire la dérive architecturale et les coûts de refactorisation
  • Les nouveaux membres peuvent rapidement comprendre l’architecture et générer du code conforme aux normes

Résultats d’apprentissage

À la fin de ce chapitre, vous pourrez :

  • 1Comprendre les idées fondamentales de TDD 2.0 et utiliser l’IA pour accélérer le développement piloté par les tests
  • 2Comprendre le fonctionnement de DDD with AI et pouvoir utiliser l’IA pour aider à la modélisation du domaine
  • 3Maîtriser le modèle de collaboration multi-agents de l’Agent-Driven Development
  • 4Comprendre la valeur du RAG-Driven Development et être capable de construire une base de connaissances privée
  • 5Être capable de choisir le mode de développement natif IA approprié en fonction des caractéristiques du projet