1️⃣ Test‑Driven Development (TDD)
On écrit les tests avant le code.
Cycle classique :
- écrire un test qui échoue
- écrire le code minimum pour le faire passer
- 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 :
CucumberSpecFlow(.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 :
- TDD
- BDD
- DDD
- API‑Driven Development
- Contract‑Driven Development