Monthly Archive 10 March 2026

ByPatrick

Les principaux “Driven Development”

1️⃣ Test‑Driven Development (TDD)

On écrit les tests avant le code.

Cycle classique :

  1. écrire un test qui échoue
  2. écrire le code minimum pour le faire passer
  3. refactoriser

Cycle appelé Red → Green → Refactor

Avantages :

  • code très testable
  • moins de bugs
  • architecture plus propre

Outils :

  • Python : pytest
  • C# : xUnit, NUnit
  • JS : Jest

2️⃣ Behavior‑Driven Development (BDD)

Extension du TDD orientée comportement utilisateur.

On décrit le comportement avec un langage quasi naturel.

Exemple :

Given user is logged in
When user clicks checkout
Then order is created

Outils :

  • Cucumber
  • SpecFlow (.NET)
  • Behave (Python)

Format Gherkin.


3️⃣ Acceptance Test‑Driven Development (ATDD)

Variante du BDD.

Les tests d’acceptation métier sont écrits avant le développement.

Participants :

  • développeurs
  • QA
  • métier

But : s’assurer que la fonctionnalité correspond au besoin métier.


4️⃣ Domain‑Driven Development (DDD)

Approche architecturale.

On conçoit le logiciel autour du domaine métier.

Concepts :

  • Entities
  • Value Objects
  • Aggregates
  • Repositories
  • Bounded Context

Très utilisé pour :

  • microservices
  • architectures complexes

5️⃣ Model‑Driven Development (MDD)

On part de modèles UML ou abstractions, puis on génère le code.

Exemple :

UML → génération code Java / C#

Utilisé dans :

  • systèmes industriels
  • systèmes embarqués

6️⃣ Specification‑Driven Development (SDD)

Le développement est guidé par une spécification formelle.

Exemple :

  • OpenAPI
  • contrats d’API
  • interface contract

Exemple API :

OpenAPI → génération client + serveur

7️⃣ API‑Driven Development

Très utilisé pour les microservices.

On commence par définir l’API :

OpenAPI / Swagger

Ensuite :

  • front
  • backend

s’alignent dessus.


8️⃣ Contract‑Driven Development

Basé sur des contrats entre services.

Exemple :

Consumer → définit contrat
Provider → doit respecter contrat

Outils :

  • Pact
  • Spring Cloud Contract

9️⃣ Security‑Driven Development

La sécurité guide le design.

On part de :

  • threat model
  • attaques possibles

Puis on code.

Très utilisé pour :

  • fintech
  • défense
  • blockchain

🔟 Data‑Driven Development

Les décisions sont prises à partir des données.

Exemple :

  • A/B testing
  • analytics
  • télémétrie

Autres variantes

On rencontre aussi :

  • UI‑Driven Development
  • UX‑Driven Development
  • Feature‑Driven Development (FDD)
  • Performance‑Driven Development
  • Event‑Driven Development

Les plus utilisés en pratique

Les 5 plus répandus :

  1. TDD
  2. BDD
  3. DDD
  4. API‑Driven Development
  5. Contract‑Driven Development