Je suis occupé! La majeure partie de mon temps est consacrée à l'aide de techniques analytiques ou sur le travail de cours, et lorsque je passe au mode de programmation, je dois générer du code rapidement. Depuis, l'enquêteur principal du laboratoire que je suis ne se soucie pas si j'utilise TDD ou un abaque tant que je reçois des résultats rapidement. P>
J'ai lu "TDD par exemple" et je l'ai trouvé assez utile. J'ai ensuite acheté "Refactoring: Améliorer la conception du code existant" "," Motifs de conception: éléments du logiciel réutilisable orienté objet "et" fonctionnant efficacement avec le code hérité ", mais ces cartes sont grandes et les perspectives de sauter en eux sont désormais découragés. ! p>
Le style conversationnel et le flux de "TDD par exemple" ont permis d'intégrer facilement dans mon horaire. Mais je ne sais pas comment travailler dans ces autres livres et dans quel ordre; Il semble que chacun soit tout aussi pertinent (je suis dans une sorte d'impasse de philosophe à manger - j'attends que chaque aspect de ma boîte à outils de programmation s'améliore, mais leur interdépendance me présente soit de la grippage ou de perdre du temps au changement de contexte - Désolé pour le analogies :)). par exemple. J'ai un code hérité qui doit être refactored et recouvert de tests, je dois appuyer sur le TDD (mais je ne le fais jamais), j'ai besoin de coder avec des modèles de conception afin d'arrêter de réinventer les roues. P>
Y a-t-il un bon moyen de décomposer ces les lectures requises em> dans des morceaux de taille d'octets et un moyen de le faire tout en appliquant leurs techniques aux projets actuels (personnellement, je perds les informations si je ne peux pas appliquer tout de suite)? Est-ce que je me concentre sur un livre et le complète? Ai-je besoin de TDD d'abord puis refactoring et concevoir des compétences de modèle (mais «poulet et œuf» tous ces livres de test de l'unité parlent de modèles de conception et de refactoring comme si je les connais en arrière et en avant)? p>
J'ai lu le meilleurs tutoriels pour les débutants mais ça ne fait pas ' t Expliquez comment je l'intégrez dans un horaire chargé. Et, j'ai lu Programmation dans un environnement scientifique mais encore une fois, il manque la Marque de savoir comment ajoutez-vous ces techniques lorsque vous êtes déjà en retard à l'heure? P>
3 Réponses :
Compte tenu de la description de ce que vous faites, je commencerais d'abord à interroger l'hypothèse. Je ne sais rien de la complexité de vos programmes, mais si votre codage consiste strictement à générer des calculs et qu'il s'agit d'une sorte de "niveau de script", ce qui signifie que pour un morceau de code donné, vous pouvez tout aussi facilement le jeter et Réécrivez-le comme gardez-le, alors beaucoup de ces techniques sont surchargées. Je pense que TDD (peut-être une version jumelée que des combines dans les tests d'intégration) seront toujours précieuses, mais au-delà de cela, pas nécessairement. P>
Si toutefois, vous concevez vraiment des systèmes logiciels (et au moins une partie de ce que vous pourriez faire pourrait être admissible même si tout cela ne le fait pas, par exemple modèle de base de données, des écrans de saisie, une distribution de résultats), je dirais que je dirais que la lecture de ces livres pour commencer et ne vous inquiétez pas de ne pas le faire correctement tout le temps des démarreurs, assurez-vous de faire des progrès mesurables chaque semaine. P>
Au fait, des modèles de conception peuvent être utiles pour savoir comment des problèmes similaires sont abordés, mais ne "conçoivent pas les utiliser" au lieu de quelque chose d'autre. Votre dessein peut ne pas être bon seul, mais les motifs proviennent de la conception du monde réel, pas l'inverse. Donc, vous pouvez certainement voir plus de solutions orientées objet que ce que vous faites peut-être, mais ne vous inquiétez pas si ce que vous faites correspond à un modèle de conception. Assurez-vous que ce que vous faites est une bonne conception maintenable sur ses propres termes, et les motifs circuleront de cela. P>
Software d'écriture pour un laboratoire de recherche moi-même, je ne peux pas dire que ce n'est pas une hypothèse sûre que l'attitude "Obtenir rapidement rapide" est une indication que la portée du logiciel est petite ou "niveau de script". Principe Les chercheurs scientifiques affichent souvent le logiciel créé pour leur recherche comme un moyen de fin et ne se soucient pas de la qualité du logiciel produit, seuls les résultats finaux. Cela entraîne souvent une forte conception de logiciels en raison de la pression pour que les utilisations soient effectuées à court terme, ainsi que des efforts sur duplication de projets en raison d'un manque de mise en œuvre modulaire.
+1 @mark, oui, le code est assez complexe et ne peut pas être facilement accompli dans des environnements comme Matlab ou Mathematica. Donc, je dois commencer à réutiliser le code (qui me demandera de refacteur) ..
Vous ne pouvez pas tout faire, tout à la fois (vous saviez cela). Certaines techniques vous permettent de gagner du temps et de TDD et de refactoring sont élevés sur cette liste. En particulier avec TDD - ne vous inquiétez pas lorsque vous devez le faire, qu'il faut le faire, comment l'adapter à votre emploi du temps; fais-le. Plus tôt vous commencez, plus vite cela vous sauve du temps. Une fois que vous avez cette compétence dans la main, alors que vous abordez une tâche sur le code hérité, écrivez des tests autour de vous pour vous protéger (non, ce n'est pas TDD, mais les compétences de rédaction de tests que vous avez honorées avec TDD appliqueront). Lorsque vous avez une bonne couverture du module, vous devez modifier, vous pouvez alors le refroidir librement, en exécutant vos tests fréquemment. Parmi les livres que vous mentionnez, dans la situation que vous décrivez, la suivante que je recommanderais de lire est Michael Plumers de travailler efficacement avec le code hérité - cela vous donnera les astuces qui vous portent en avant. P>
Pour le moment, cependant: TDD tout. Il vous fera gagner du temps plus tôt que vous imaginiez, et vous pouvez mettre ce temps à apprendre de plus en plus de techniques. P>
Je commencerais avec le livre de refactoring (car vous avez mentionné être submergé dans le code hérité) et essayer de le lire une heure à la fois. Ensuite, la prochaine fois que vous programmez, recherchez des moyens d'appliquer ce que vous avez lu. p>
Une fois que vous avez commencé à vous sentir comme si vous libérez un peu de temps, regardez les autres livres. Je recommande également le code de livre complète pour améliorer vos compétences. P>