Ich bin beschäftigt! Die meiste Zeit verbringe ich mit analytischen Techniken oder mit Kursarbeit, und wenn ich in den Programmiermodus umschalte, muss ich schnell Code generieren. Da es dem Primärermittler für das Labor, in dem ich mich befinde, egal ist, ob ich TDD oder einen Abakus verwende, solange ich schnell Ergebnisse bekomme.Wie integriere ich TDD in meinen Workflow als wissenschaftlicher Programmierer/Student/Forscher?
Ich habe gelesen "TDD mit Beispiel" und fand es sehr hilfreich. Ich kaufte später "Refactoring: Verbesserung des Designs von bestehendem Code", "Design Patterns: Elemente von wiederverwendbarer objektorientierter Software" und "Effektiv mit Legacy Code", aber diese Bücher sind groß und die Aussichten, in diese zu springen, ist entmutigend !
Der Dialogstil und der Ablauf von "TDD by example" erleichterten die Einarbeitung in meinen Zeitplan. Aber ich weiß nicht, wie ich in diesen anderen Büchern und in welcher Reihenfolge arbeiten soll; es scheint, dass jeder ist genauso relevant (Ich bin in einer Art Dining Philosoph Deadlock - Ich warte auf jeden Aspekt meiner Programmierung Toolkit zu verbessern, aber ihre Interdependenz hat mich entweder festgefahren oder verlieren Zeit für Kontextwechsel - Entschuldigung für die Analogien :)). z.B. Ich habe Legacy-Code, der refaktoriert und mit Tests abgedeckt werden muss, ich muss mit TDD weitermachen (aber ich tue es nie), ich muss mit Designmustern programmieren, damit ich die Räder nicht neu erfinde.
Gibt es eine gute Möglichkeit, diese erforderlich zu brechen liest in Byte große Brocken und ein Weg, dies zu tun, während ihre Techniken zu aktuellen Projekten Anwendung (persönlich, ich verliere die Informationen, wenn ich es nicht anwenden kann sofort) Konzentriere ich mich auf ein Buch und vervollständige es? Brauche ich zuerst TDD, dann Refactoring und Design Pattern Skills (aber "Hühnchen und das Ei" all diese Unit Test Bücher sprechen über Design-Muster und Refactoring, als ob ich sie weiß, rückwärts und vorwärts)?
Ich habe die best tutorials for beginners gelesen, aber es erklärt nicht, wie ich dies in einen vollen Zeitplan integrieren. Und ich lese programming in a scientific environment, aber wieder vermisst es das Zeichen, wie Sie diese Techniken hinzufügen, wenn Sie bereits rechtzeitig zurück sind.
+1 - Zustimmen 100% – Paul
Ich schreibe Software für ein Forschungslabor selbst, ich kann sagen, dass es keine sichere Annahme ist, dass die "get it done quick" Haltung ein Hinweis darauf ist, dass der Umfang der Software klein ist oder "Skript-Ebene". Die meisten wissenschaftlichen Forscher betrachten die für ihre Forschung entwickelte Software oft als Mittel zum Zweck und kümmern sich nicht um die Qualität der Software, sondern nur um das Endergebnis. Dies führt häufig zu einem schlechten Software-Design aufgrund des Drucks, die Dinge auf kurze Sicht zu erledigen, sowie aufgrund doppelter Bemühungen in verschiedenen Projekten aufgrund fehlender modularer Implementierungen. –
+1 @Mark, ja, der Code ist ziemlich komplex und kann nicht einfach in Umgebungen wie Matlab oder Mathematica ausgeführt werden. Also muss ich anfangen, den Code wiederzuverwenden (was mich dazu bringen wird, zu refactorieren). – bias