Heute habe ich eine Änderung an einem Code eingecheckt, der sich aufgrund eines ziemlich dummen, aber sehr entscheidenden Problems als überhaupt nicht funktionierend herausstellte. Ich fühle mich sehr schlecht und hoffe, dass ich endlich etwas daraus lernen kann. Das Dumme ist, ich habe diese Dinge schon einmal gemacht und ich sage mir immer, das nächste Mal werde ich nicht so dumm sein ... Dann passiert es wieder und ich fühle mich noch schlimmer dabei.
Ich weiß, du solltest dein Kinn hochhalten und aus deinen Fehlern lernen, aber hier ist die Sache: Ich versuche mich zu verbessern, ich sehe nur nicht, wie ich diese Dinge verhindern kann.
Jetzt frage ich euch also: Hast du bestimmte Grundregeln beim Testen deines Codes?
self-improvement
testing
Peter
quelle
quelle
Antworten:
Schreiben Sie Tests, bevor Sie Codeänderungen vornehmen.
Wenn Ihre vorgeschlagene Änderung die Behebung eines Fehlers ist, lassen Sie den Test zunächst fehlschlagen, indem Sie den Fehler demonstrieren. Stellen Sie dann sicher, dass der Fehler behoben ist. Wenn Sie den Test nachträglich schreiben und erst gesehen haben, dass er bestanden wurde, können Sie nicht sicher sein, ob er den Fehler überhaupt richtig getestet hat.
Wenn Ihre vorgeschlagene Änderung darin besteht, vorhandene Funktionen zu ändern oder eine Funktion hinzuzufügen, schreiben Sie einige Tests, um eine gute Abdeckung des zu ändernden Codebereichs sicherzustellen. Stellen Sie sicher, dass diese Tests erfolgreich sind, bevor Sie mit der Codeänderung beginnen.
quelle
Vergessen Sie nicht, Edge Cases zu testen! Viele Fehler sind, weil die häufigste Aktion getestet wurde, aber nicht die weniger häufigste.
quelle
Befolgen Sie die technischen Hinweise in den technisch orientierten Antworten. Es ist gutes Zeug. Meine Antwort ist mehr über Haltung.
Es ist einfach absurd, sich schlecht zu fühlen, wenn man den Fehler macht, den jeder Entwickler gelegentlich macht. Während du da sitzt und dich schlecht fühlst, ist der Build immer noch gebrochen, weißt du? Und dann geht es bei Ihrer Arbeit darum, Fehler zu vermeiden, von denen ich weiß, dass es jeden Tag ein aufregendes Abenteuer ist, morgens aus dem Bett zu steigen, oder?
Ich habe von Firmen gehört, in denen das Einchecken von fehlerhaftem Code Anlass zur öffentlichen Schande ist. Ich kann mich nicht einmal mit der Art von verzerrtem, frat-boy, junior-high-level Denken beschäftigen, das zu einem solchen Verhalten führen würde. Es gibt kaum etwas, was für einen Teamleiter oder Manager kontraproduktiver sein könnte.
Also verprügel dich nicht. Wir haben es alle geschafft. Ich habe mich wahrscheinlich einen halben Tag pro Woche durch alberne Fehler gekostet, und das mache ich schon lange. So sieht es aus, wenn Sie Code schreiben - Sie stoßen ständig auf Ihre eigenen Unzulänglichkeiten. Was einen Profi zum Profi macht, ist keine mythische Eigenschaft, niemals Fehler zu machen (manchmal auch große), sondern wie sie auf die Fehler reagieren, die sie machen.
Wenn ich jedem Entwickler, mit dem ich arbeite, ein Mantra beibringen könnte, dann ist es das Folgende: Sie sind nicht Ihr Code . Sie schreiben Code. Sie schreiben es so gut und effizient wie Sie können. Dann gehst du nach Hause. Wenn Sie Ihren Wert oder Ihr Selbstwertgefühl mit der Qualität Ihres Codes gleichsetzen, vermissen Sie nur das Boot, wer Sie wirklich sind.
quelle
Eine weitere wichtige Testmethode besteht darin, den Test zu schreiben und sicherzustellen, dass er mindestens einmal fehlschlägt, BEVOR Sie den Code schreiben. Es ist alles zu einfach, Fehler zu machen und einen Tautologietest zu schreiben, der versehentlich nicht den Zustand testet, auf den Sie prüfen. Falsche Zusicherungen sind fast (und manchmal noch schlimmer) als keine Zusicherungen.
quelle
Eine Idee, die ich von Zeit zu Zeit verwendet habe, ist diese,
Erstellen Sie eine Verzweigung und brechen Sie Ihren Code, führen Sie den Test aus und stellen Sie sicher, dass der Test den Fehler abfängt.
quelle
Einige zusätzliche allgemeine Punkte:
quelle