Après avoir lu cette POST I un peu ressenti dans la même position comme le gars qui a posé la question. J'aime la technologie et propose de nouvelles idées pour résoudre des problèmes du monde réel obtient mes neurones excitées, mais l'autre partie de l'équation - en fait des choses à faire (vite) - est normalement une douleur dans le cul pour accomplir, spécialement quand je ' m faisant ça pour moi-même. P>
Parfois, je me sens un peu fatigué avec le code, d'autres fois, je passe plus de temps à déplacer le curseur dans l'éditeur de texte et à regarder mon code, essayant de trouver une solution meilleure que celle que j'ai déjà. J'ai entendu dire que c'est une maladie J'ai lu dans le même post (et aussi quelques fois ici sur aussi) que TDD est vraiment bon pour arrêter codant comme une fille , mais je n'ai jamais eu aucune chance à TDD - non plus parce que je suis trop paresseux pour apprendre / le mettre en place ou parce que je ne le fais pas pense que j'en ai besoin parce que je peux faire tous les tests dont j'ai besoin dans ma tête. P>
PS: Je suis principalement (mais pas exclusivement) avec PHP ici. P>
3 Réponses :
Personnellement, je pense que TDD est à Meilleur surkill et au pire un obstacle à un processus créatif de programmation. Le temps passé à écrire des tests d'unités d'écriture laborieuses pour chaque fois que les méthodes / classes non non modifiées seraient mieux consacrées à la résolution du problème initial. Cela étant dit que je suis un grand fan de tests unitaires et croyez sans réserve. Si j'ai un code de code particulièrement complexe ou gênant, je suis plus qu'heureux d'écrire 20 tests unitaires pour une seule méthode, mais généralement après avoir résolu le problème. TDD, comme tous les autres paradigmes de programmation, n'est pas une balle d'argent. Si vous y utilisez, vous l'utilisez si vous ne respectez pas. P>
Mais prenez mon avis avec un grain de sel. Un autre plus intéressant provient de Kent Beck et Quelle est la profondeur de vos tests d'unité? . P>
Certaines personnes prétendent que les tests d'écriture avant le code entraînent une meilleure conception (des pièces de code minimes, correctes et testables).
+1 Pour cela ... Le problème est que l'esprit humain est de fonctionner dans un processus séquentiel. Il est similaire à un moteur conçu pour aller de l'avant ... TDD est un processus inverse et efficace demande que vous essayez de renversez le moteur vers l'avant à adopter TDD ... «Beaucoup» de personnes ne voudra pas que :)
croyez-vous aussi que TDD aide à GTD? strong>
Ma plus grande préoccupation était simplement de ne pas pouvoir tester le code. C'était trop complexe. Nos bibliothèques principales n'étaient pas construites autour d'une interface facilement testable. Nous avons donc écrit des tests pour tout ce que nous pouvions. À la fin, nous avons fini par refactoriser nos bibliothèques principales pour faciliter la vie. En plus de cela, c'est un changement d'état d'esprit, et j'envisagerai certainement d'allouer plus de temps sur votre premier projet TDD simplement pour affleurer certains des problèmes que vous pourriez avoir en cours de route. p>
Quelle serait la meilleure méthodologie pour organiser / développer une application Web TDD? strong>
Nous avons eu assez de succès avec Scrum / Agile, si c'est ce que vous demandez. p>
quelles bibliothèques dois-je utiliser (le cas échéant) pour rendre ma vie plus facile? STRUT>
Ma connaissance PHP a expiré il y a 5 ans et je laisserai quelqu'un d'autre répondre à cela. P>
De toute façon, juste mes 2 cents. Si vous avez envie de lire ici, c'est un bon aperçu: http://www.agiledata.org/essays /tdd.html p>
J'ai récemment commencé à utiliser des "contrôleurs minces de graisse" http: / /www.amittshah.in/php/controller-vs-model.html : Pellette autant de code dans le modèle (et hors de la vue / contrôleur) que possible. P>
J'utilise PHPUnit (et la prise en charge de Zend Framework pour celui-ci) pour ne tester que quelques modèles complexes de mes applications Web. Écriture des tests d'unité qui vérifient de manière exhaustive une fonction de 2 lignes qui exécute une requête SQL simple est une perte de temps imho. Au cours des deux dernières années, j'ai la paresseuse et la plus paresseuse avec des tests d'écriture, et pour la plupart des applications Web, ce n'est pas la peine, car le code est si simple. P>
Mais dans un projet récent (un site de commerce électronique qui suit les niveaux de stock sur plusieurs entrepôts avec des produits composites) J'ai commencé à faire des tests - premier développement parce que je savais qu'il y aurait beaucoup de complexité subtile que je ne pouvais pas garder ma tête tout à la fois. Le seul moyen de tout travailler car ma pensée développée était d'écrire des tests. Avec certaines parties, il semblait plus naturel d'écrire la classe puis des tests, d'autres parties ont été testées en premier, mais d'autres parties n'avaient pas besoin de tests car ils étaient triviaux. TDD est un outil, pas une religion. Utilisez-le quand cela fonctionne, arrêtez-vous si ce n'est pas le cas. P>
où je vois que l'avantage dans TDD est de réduire la complexité et de la vitesse croissante (la vitesse à laquelle je peux résoudre des problèmes). Si j'écris quelques tests qui prouvent que mon code fonctionne, alors dès que tous les tests passent, je peux passer au problème suivant. Cela me rend le plaisir dans le codage pour moi. p>
Dans quoi travaillez-vous d'autre? Je ne pense pas que PHP est énorme sur la scène de tests, donc ce sera probablement une bataille en montée.
PHP est où je suis le plus actif (environ 90%), les 10% d'autres devraient aller à Python.
@Y, phpunit suffit à démarrer TDD et à obtenir des résultats.
@ x2 J'ai vu cela après avoir cherché. Je n'ai pas programmé PHP pendant une longue période, je ne pouvais donc pas dire si c'était bon ou non.