Peu importe le langage de programmation, il existe une méthodologie de travail que vous utilisez peut-être durant le développement, probablement sans même vous en rendre compte : Fake It ('Til You Make It).
Cette approche, décrite par Kent Beck dans son livre Test-Driven Development by Example (TDD), suggère que lorsqu'on écrit les tests avant de se lancer dans l'implémentation du code, l'objectif premier étant de faire passer la suite de tests avec succès (et surtout d'avoir des tests!). Apercevoir la barre verte qui indique que tout fonctionne bien peut être bénéfique pour le moral, même si on implémente le tout avec des classes et des fonctions bidons. Au moins la structure et la logique tiennent la route. Et lorsque vient le temps de faire des changements ou du refactoring, il suffit d'exécuter à nouveau la série de tests pour s'assurer que tout est conforme.
L'autre avantage est d'avoir un meilleur contrôle sur chaque composant du code, et ce même si on ne respecte pas l'approche TDD. Par exemple, si on sait que notre projet sera constitué d'un mécanisme de login ou encore d'un service web qui retourne un taux de change, on peut créer le squelette des classes et le prototype des fonctions qui retourneront des valeurs "hard-codées" en attendant la création du code final. Ensuite, il restera à déléguer l'implémentation à d'autres membres de l'équipe le temps venu.
C'est pourquoi on dit "feint le ou imite le en attendant de le compléter".
Quelques exemples de patterns Fake It :
# exemple 1
function hasAccess($level, $resource){
// hard-coded return value
return true;
}
if( hasAccess('pickpocket', 'wallet') ){
// do something
}
# exemple 2
function getCurrentCurrencyExchangeRate($from, $to){
// @todo: connect to live service
return 1.16452;
}
echo getCurrentCurrencyExchangeRate('USD', 'CAD');