*DD POUR LES GROS PROJETS ? Quelle est la métrique qui détermine un “gros projet” ? (a) Les ressources qui lui sont allouées ? (b) Le montant en bas de la facture ? (c) Sa durée de vie ? (d) La réponse D
*DD PLUS COUTEUX ? ➤ Le critère création tests/budget est identique ➤ PhpSpec à pour intérêt principal de générer du code ➤ Ne pas oublier que le *DD nous incite avant tout à faire de l’objet.
AU FINAL ? ➤ L’objectif du *DD est de faciliter : ➤ La conception (= le design) de l’application sur le long terme ➤ Donc sa compréhension ➤ Donc sa maintenance ➤ Donc le transfert de compétence
STEP 1: IMPACT MAPPING Feature: Want to grow up to 10 000 customers As a customer When I connect my Facebook account to website Then I get a discount coupon
STEP 3: DOMAIN MODELING @domain Feature: Want to grow up to 10 000 customers Scenario: Connect my social account Given I am a registered customer with a new account When I want to add a social account to my social panel Then I can decide if I want to send mails to my friends Scenario: Get a discount coupon Given I just receive a mail from my friend When I confirm my subscription Then I will receive a 10% discount coupon And my friend a 20 discount coupon
DDD: AVANTAGES ➤ Une vraie agilité ➤ Pérennité du code ➤ Plusieurs niveaux de documentations technique ➤ Un code métier compréhensible par tous ➤ MVP vs MLP
DDD: INCONVÉNIENTS ➤ Le premier projet fait mal ➤ Le critère temps à court terme (pas vraiment DRY — quoi que) ➤ L’infaisabilité technique sur certains projets (Magento, Prestashop, Wordpress…)