In dem Buch The Pragmatic Programmer erwähnen die Autoren das Konzept der zufälligen Programmierung . Es erklärt, was es ist, warum es verursacht wird, welchen Gefahren Sie begegnen können und es ist vergleichbar mit einem Landminenfeld in einem Krieg.
Schaust du dir jemals alte Schwarz-Weiß-Kriegsfilme an? Der müde Soldat kommt vorsichtig aus der Bürste. Vor uns liegt eine Lichtung: Gibt es Landminen oder ist es sicher zu überqueren? Es gibt keine Anzeichen dafür, dass es sich um ein Minenfeld handelt - keine Schilder, Stacheldraht oder Krater. Der Soldat stößt mit seinem Bajonett und zuckt zusammen und erwartet eine Explosion. Es gibt keinen. Also geht er eine Weile mühsam durchs Feld und stupst und stupst dabei. Schließlich ist er überzeugt, dass das Feld sicher ist, richtet sich auf und marschiert stolz vorwärts, um dann in Stücke gerissen zu werden.
Die ersten Minensonden des Soldaten enthüllten nichts, aber das war nur ein Glücksfall. Er wurde zu einer falschen Schlussfolgerung geführt - mit katastrophalen Ergebnissen.
Als Entwickler arbeiten wir auch in Minenfeldern. Es gibt Hunderte von Fallen, die nur darauf warten, uns jeden Tag zu fangen. Wenn wir uns an die Geschichte des Soldaten erinnern, sollten wir uns davor hüten, falsche Schlussfolgerungen zu ziehen. Wir sollten es vermeiden, durch Zufall zu programmieren - indem wir uns auf Glück und zufällige Erfolge verlassen -, um absichtlich zu programmieren ...
Aber ich bin nicht wirklich zufrieden mit der Art und Weise, wie sie das Problem "wie man es überwindet" beschreiben. Ja, Sie müssen überlegen, bevor Sie den Code schreiben, aber wie können Sie das üben? Das Einzige, was ich mir vorstellen kann, ist das Hinzufügen von Funktionen zu vorhandenen Open Source-Projekten, bei denen Sie sowohl über Kenntnisse darüber verfügen müssen, was ich gerade tue als auch darüber, wie die anderen Codeteile funktionieren wenn Sie Ihre eigenen Projekte schreiben.
BEARBEITEN:
eine Zusammenfassung Ihrer Beiträge:
- Errate deinen nächsten Schritt nicht, beweise, dass er korrekt ist
- Unit Test und Refactor soweit möglich, wenn nötig
- Features hinzufügen - häufig kompilieren - testen
- Wenn Sie einem Neuling den Code nicht erklären können, programmieren Sie wahrscheinlich zufällig.
Übrigens ist es schwer, eine Antwort zu akzeptieren, es ist wirklich schwer. Alle Antworten sind wirklich toll :)