Eben nicht. Das ist doch der Punkt. Natürlich kann man es übertreiben aber in der Regel ist das Problem eher, dass es eben nicht durchdacht ist und man am Schluss ewig lang um ein Problem herumcoden muss, weil man es nicht gleich richtig gemacht hat.
Du hast aber schon Recht, dass man in solchen Diskussionen immer mehr designed als in der Realität notwendig
Schwierig schwierig. Ich hatte gerade in meinen drölfzig toten Projekten oft das Problem, zu komplex designed zu haben und TROTZDEM am Ende teilweise komplett refaktorisieren zu müssen. Da hast du die Zeit dann irgendwie doppelt verschwendet. Aber das ist natürlich auch zum Teil einfach Unfähigkeit meinerseits und zum anderen Teil auch der Unwille, sich später mit dem eher ungeliebten Thema Softwarearchitektur noch auseinanderzusetzen. Als Hobby tendiert man leider dazu, die Dinge schleifen zu lassen, wenn es ungemütlich wird.
Als Faustregel bei Entscheidungen zwischen "schön" und "schnell" mache ich es so, dass ich einen Schritt voraus denke.
Das basiert aber natürlich auch auf Erfahrung. Man bekommt nach einiger Zeit ja so ein Bauchgefühl für die Arten der Implementierung. Ich muss zwar hauptberuflich gottseidank keine großen Softwaresysteme planen, sondern eigentlich "nur" vorhandene Architekturen erweitern (Eigene Plugins auf Eclipse RCP Basis mit verschiedenen Eclipse Technologien, z.B. EMF, GEF und wat weiß ich), aber man fuchst sich da halt ein und implementiert die "leichten Patterns" wenn nötig unbewusst. Allerdings muss ich sagen, dass der Code, den ich in der Firma schreibe zum Teil unter aller Sau ist, aber er funktioniert und ist rechtzeitig fertig. Die Ansprüche aus meinen Hobbyprojekten dürfte ich hier garnicht stellen, obwohl es streng genommen anders herum sein müsste
.