Als ich anfing zu programmieren, ging ich davon aus, dass ich eines Tages an den Punkt kommen würde, an dem ich ein Projekt starten würde, indem ich mich hinsetze und ein UML-Diagramm aller Klassen skizziere, und mich dann so ziemlich daran halte. Ich programmiere jetzt seit ein paar Jahren und es stellt sich nicht so heraus. Während ich ein Projekt durcharbeite, sage ich oft
- „Hey, ich brauche eine Klasse zu tun _ _. Ich vorher nicht daran gedacht hätte.“
- "Warten Sie, diese Funktion sollte wirklich in dieser Klasse statt in dieser sein. Ich werde sie verschieben."
- "Das sollten eigentlich zwei statt einer Klasse sein. Ich werde es aufteilen."
- "Ich sollte diese drei eigenständigen Klassen alle von einer abstrakten Klasse erben lassen."
- Usw. usw.
Ist es ein schlechtes Zeichen, dass ich währenddessen oft so umgestalte? Bedeutet das, dass ich ein schlechter Programmierer bin oder ist das normal?
quelle
Was Sie tun, wird im Volksmund als "Refactoring" bezeichnet. Wenn Sie jemals damit aufhören, dann stecken Sie in Schwierigkeiten.
Tatsache ist, dass der meiste Code komplex ist und Menschen, auch ziemlich kluge, nicht alles auf einmal herausfinden können.
quelle
Nein, Sie scheinen zu sein folgenden YAGNI und Refactoring von den Beispielen. Denken Sie nicht, dass es besser ist, diese bessere Lösung zu haben und dazu in der Lage zu sein, als einfach nie wieder an etwas zu denken?
Bei der agilen Softwareentwicklung werden normalerweise Methoden angewendet, die sich deutlich vom Wasserfallmodell unterscheiden.
quelle
Das ist vollkommen in Ordnung (es sei denn, diese Neukonstruktionen sind immer größere Überholungen oder Neukonstruktionen von Grund auf). Mach dir keine Sorgen. Es kann gut sein, zu Beginn des Projekts mit einem UML-Diagramm zu beginnen, aber schneiden Sie es nicht in Stein, da Sie fast immer feststellen werden, dass sich die Dinge während der Arbeit ändern. Sie können neue Techniken erlernen, die Sie zu Beginn nicht kannten, und einige Funktionen auf eine Weise verbessern, die Sie beim ersten Entwurf nicht kennen. Die Geschäftsanforderungen ändern sich. Manchmal gibt es beim ersten Entwurf Unbekanntes, das nur möglich ist später abgerechnet werden, etc ...
Was ist wichtig zu gehen und diese anfänglichen UML - Dokumente zu aktualisieren , so dass sie keine wesentlichen Änderungen in Design, sonst zukünftige Entwickler (einschließlich sich selbst) reflektieren könnte sehr verwirrt enden. Dies kann schwierig sein und erfordert oft gute Disziplin (und Zeit).
Es ist sehr sehr sehr selten mit einem Design zu starten, und es 100% bis zur Umsetzung haften. Ich persönlich habe noch nie so etwas gesehen, außer bei sehr kleinen und trivialen Programmen.
quelle
Was Sie tun, ist völlig normal (vorausgesetzt, Sie fangen nicht jedes Mal von vorne an). Ich bin seit über zwanzig Jahren dabei und es ist immer noch ein iterativer Prozess.
Das einzige Mal, dass Sie in der Lage sein werden, alles von vornherein zu entwerfen und sich daran zu halten, ist, dass Sie genau dasselbe Problem lösen, das Sie zuletzt gelöst haben, und selbst dann können Sie wahrscheinlich Raum für Verbesserungen finden.
quelle
Ich bin keineswegs ein sehr erfahrener Entwickler, aber ich mache das auch. In den letzten Jahren hat sich meine Fähigkeit, die notwendige Architektur mental zu konstruieren, stark verbessert. Während ich jedoch ein Stück Software schreibe, gibt es immer Orte, die ein bisschen neu gestaltet werden müssen, egal wie viel Planung ich tue. Stellen, von denen ich nicht wusste, dass ich mich wiederholen würde, bis der Code tatsächlich geschrieben wird.
Mein Punkt in diesem Beitrag ist, zu sagen, dass ich alles in Ihrer Liste mache und nicht das Gefühl habe, dass diese Dinge notwendigerweise schlecht sind, es sei denn, sie passieren ständig und haben einen echten negativen Einfluss auf Ihre Produktivität.
quelle
Das nennt man iterativen Prozess und es ist ein Grundkonzept in allen modernen Softwareentwicklungstechniken.
quelle