- le développement piloté par les tests (Test Driven Development), introduit par les tests unitaires (phpUnit, Atoum...).
- le développement piloté par le comportement (Behavior Driven Development) avec entre autres Behat.
Traduction, avec ces méthodes, mon code sera propre, standard, mais il ne fait pas encore ce pourquoi je le crée.
I pour isolate.
R pour refactor.
T pour test.
I pour integrate.
1. On code ce que l'on peut coder du moment qu'on a quelque chose de fonctionnel rapidement (la valeur métier).
2. On relit notre code, pour isoler les points d'abstractions.
3. On refactorise notre code en séparant les différentes couches isolées précédemment.
4. On refait ce process autant que nécessaire jusqu'à compréhension parfaite de l'architecture de l'application.
5. Une fois, les couches d'abstraction isolées, on écrit nos tests unitaires.
6. Une fois les abstractions testées, on les intègre dans notre application.
Elle a pour avantage de produire du code fonctionnel d'abord, pour mieux affiner sa vision de l'application, avant de correctement refactoriser et normaliser son code.