Ich hörte viele Leute sagen, dass Sie bei der Entwicklung von Algorithmen zuerst Stift und Papier, Flussdiagramme und was nicht verwenden sollten, damit Sie sich auf den Algorithmus selbst konzentrieren können, ohne sich um die Implementierung dieses Algorithmus kümmern zu müssen (dh Sie beschäftigen sich mit einem Problem bei einem Zeit).
Meistens fällt es mir jedoch leichter, meinen Algorithmus im laufenden Betrieb zu entwickeln. Das heißt, ich denke ein wenig über das Problem nach, bis ich die allgemeine Richtung kenne, und dann beginne ich, Code zu schreiben und Änderungen vorzunehmen, bis der Algorithmus auftaucht und funktioniert.
Ist das eine schlechte Angewohnheit, die ich ändern sollte?
quelle
Ich denke, dein Ansatz ist der üblichere. Wenn der Algorithmus besonders kompliziert oder schwierig ist, kann es schwierig sein, den Algorithmus herauszufinden und gleichzeitig zu implementieren, aber im Allgemeinen bezweifle ich, dass er den meisten Menschen hilft.
Aber ich würde zum Beispiel keine Regeln für ein Grammatik erfinden und keinen Parser dafür implementieren, ohne die Regeln zuerst auf Papier zu schreiben (oder vielleicht mit einem speziellen Tool, das ich nicht habe), oder einen B-Baum ohne Pseudo- implementieren Code verfügbar.
Ich würde nicht sagen, dass Sie eine schlechte Angewohnheit haben, es sei denn, es schadet Ihnen etwas, und ich denke, Sie würden es bemerken, wenn es so wäre.
quelle
Wer sind diese "vielen Leute"? Und programmieren sie ihren Lebensunterhalt? Was Sie tun, ist genau das, was die meisten Programmierer tun, zumindest die meisten, die ich gekannt habe. Es gibt wenig Verwendung für Papier, wenn es schneller zu tippen ist, und wenig Verwendung für Pseudocode, wenn in einer Hochsprache programmiert wird. Gelegentlich verwende ich Stift und Papier, um einen kniffligen Algorithmus zu visualisieren (z. B. das Drehen eines Baums), aber meistens beginne ich mit Code auf hoher Ebene und fülle nach und nach die Lücken aus.
Wie bei KLE funktioniert dies nach einer testgetriebenen Entwicklung meiner Meinung nach besser. Angenommen, Sie schreiben sowieso Tests, können Sie sie auch zuerst schreiben.
quelle
Sie können ein Design erstellen, während Sie die Stub-Klassen, Methoden und Tests erstellen, aber Sie können sich beim Erstellen der Details festsetzen
Für die wirklich komplexen Dinge (Compiler und dergleichen) hilft ein Stift- und Papierdesign (oder zumindest eine Art Design-Tool) dabei, Sie auf dem Laufenden zu halten und das ganze Bild im Auge zu behalten, schlechte Designentscheidungen zu vermeiden und sogar die Wahl zu lassen bestimmte Designmuster von Anfang an
Aber letztendlich kommt es darauf an, wie gut Sie das große Ganze sehen können
quelle
Ich würde empfehlen, die allgemeinen Anweisungen (die "Stift & Papier" -Phase) zu skizzieren, bevor Sie zur Implementierung springen, um Zeit zu sparen, indem Sie die offensichtlichsten Anforderungen / Einschränkungen aus dem Weg räumen.
Dann können Sie es auf dem Weg optimieren, da Sie zu Beginn nie alles erraten können, da aus verschiedenen Gründen später in der Entwicklung weitere Einschränkungen auftreten können / werden.
Auf diese Weise wissen Sie, wohin Sie gehen, können sich aber dennoch an Änderungen anpassen.
quelle
1. Der Vorbereitungsaufwand ist in der Regel proportional zur Komplexität Ihrer Aktivitäten. Es macht keinen Sinn, 2 volle Tage für einen Algorithmus zu schreiben, der einmal im Quartal verwendet wird und eine Stunde Singlethread auf nur einem Computer ausführt. Es ist sinnvoll, drei Mannwochen (falls erforderlich) zu schreiben, um das neue Hochleistungs-Flusskompensatormodul zu entwickeln, das eine halbe Million Anfragen pro Stunde verarbeiten kann und ohne Ausfallzeiten rund um die Uhr und 365 Tage die Woche ausgeführt werden muss.
2. Sie können innerhalb von 30 Sekunden feststellen, ob es sich um eine schlechte Angewohnheit handelt, wenn Sie sich ansehen, welche Lösungen Sie codieren. Sie haben gefragt, ob es eine gute oder eine schlechte Angewohnheit ist. Nun, das hängt von dir ab. Wenn Sie zu Beginn Ihrer Programmierkarriere nur langsam lernen, ist es wahrscheinlich eine gute Idee, alles mit Stift und Papier zu beschreiben. Wenn Sie einige Jahre Erfahrung haben, reicht es aus, nur 5 Minuten durchzudenken und es dann einfach zu tun. Natürlich noch in Bezug auf 1. oben.
Endeffekt
Nur Ihr Code sagt der Wahrheit, ob Sie mehr oder weniger Stift und Papier benötigen. Lassen Sie sich das nicht von jemand anderem diktieren, sondern finden Sie es selbst heraus. Das hält dich am Lernen.
Haftungsausschluss: Dies ist möglicherweise nicht das, was als Mainstream-Denken und gesunder Menschenverstand bezeichnet wird. Das ist ok. Setzen Sie einfach ein Lesezeichen und lesen Sie es in etwa fünf Jahren erneut.
quelle