Pour la définition de base de TDD, vous écrivez un test d'échec, écrivez la quantité minimale de code qui fera passer le test, refactor, répétez. Il n'y a pas beaucoup de place pour reporter le refactoring.;)
Je pense que c'est pour de nombreuses raisons, principalement pour que les gens comme mon patron ne puissent pas supposer que le mot "refactor" est un mot de code geek-speek pour réécrire. Il est beaucoup plus facile d'écrire une méthode, c'est-à-dire d'obtenir des informations sur le Web. Vous écrivez votre test, le faites passer, puis dites: "Ok, prenez maintenant cette URL codée en dur et déplacez-la en haut de la classe, ou un fichier de propriétés." Combien plus difficile à faire une fois que vous aurez terminé votre cours et pesé plusieurs centaines de lignes de code. Là où la partie design intervient, c'est moins dans la grande dimension "D", au moins dans ma compréhension et dans l'utilisation de TDD, que dans les bonnes pratiques qu'elle encourage et/ou exige. Pour en revenir à mon cas d'utilisation, ok, j'ai ma méthode écrite pour récupérer mes données, maintenant je dois faire quelque chose avec ça, puis-je revenir en arrière et commencer à ajouter du code à ma méthode getData? Non, bien sûr que non, c'est "fait". Je continue et écris une nouvelle méthode ou trois pour faire quelque chose avec les données. Toutes les méthodes sont courtes, à la tâche, testables, bref, un design bien meilleur pour le code.
Je pense que c'est là que la confusion entre en jeu. TDD produit un CODE mieux conçu, qui produira probablement de meilleurs logiciels, mais si la conception globale du SYSTÈME n'est pas bonne, les meilleures pratiques de codage de l'univers ne vont pas un bon produit/système.
YMMV bien sûr.
Pourriez-vous définir ce que vous entendez par «cycle de refactoring»? –
bien je pourrais parler en termes laïques et peut-être le terme «cycle» est trompeur, Je m'interroge sur une amélioration de la conception si nous refactoriser après le développement de chaque couple d'unités par opposition à de plus grandes séances de refactoring planifiées qui sont espacés dans le temps – Yahya
Pourriez-vous réellement mettre à jour la question avec votre définition des cycles de refactoring? Vous possédez la question. Vous pouvez l'améliorer. –