Hi!
Dazu sag' ich mal YAGNI.
Ich verstehe unter YAGNI, dass man keine derzeit unnötigen Features einbauen soll. Jedoch "verbietet" mir dieses Prinzip nicht, die derzeit benötigten ohne Mehraufwand so einzubauen, dass Erweiterungen leicht möglich sind.Doch, so wie ich es verstehe, wird genau das wird eigentlich "verboten", Zitat:
"Entgegen diesem Vorgehen [YAGNI] wird in der Praxis oft versucht Programme durch zusätzlichen oder allgemeineren (generischen) Code auf mögliche künftige Änderungsanforderungen vorzubereiten. [...]"
Ich schrieb "ohne Mehraufwand", was mit dem "zusätzlichen" korrespondiert. Und nicht zu verallgemeinern heißt nicht im Gegenzug, überall Speziallösungen einzubauen, wenn mit gleichem Aufwand und Ergebnis eine generische, leicht erweiterbare Methode angewendet werden kann. Am Ende muss man mit dem Ergebnis (nicht nur für den Augenblick) leben können, egal ob es bestimmten Prinzipien ent- oder widerspricht.
[...] nur mein Weg hier zielt v.a. darauf ab, die gewünschte Funktionalität für Anfänger leichtverständlich und mit so wenig Änderungen wie möglich (am bestehenden Code) herzustellen. Deshalb habe ich [...] auch [...] nicht [diverse Vermeidenswertigkeiten] angemeckert [...]
Schon klar. Den Weg des geringsten Widerstandes gehen zu wollen ist verständlich, das versuche ich auch. Jedoch versuche ich dabei die Augen offen zu halten. Manchmal muss man Kraft aufwenden und/oder Althergebrachtes über Bord werfen, wenn neue Wege zwar relativ leicht bleiben, dafür aber immer länger werden. Je früher man eine ordentliche Lösung implementiert, desto weniger Aufwand muss man auf ungünstig gewachsene Strukturen Rücksicht nehmen. Insofern sehe ich es nicht als Problem an, zumindest auf Unzulänglichkeiten, mögliche Probleme oder (potentiell) bessere Lösungen hinzuweisen, auch wenn das Umstellungsaufwand bedeutet. Entweder zahlt er sich gleich oder später aus, oder der Rezipient lässt zwar dieses Projekt wie es ist, weiß es dann aber für das nächste besser. Ganz zu schweigen von Archivlesern, die ihren Lösungsweg erst noch vor sich haben.
Wenn die OPeuse allein mit euren Hinweisen ("nimm doch einfach einen Zähler") hätte zum Ziel kommen müssen, dann würde sie nach Wochen oder gar Monaten schließlich mit einem Fader-Framework aufwarten oder mit jQuery oder was immer, nur für das bisschen Zusatzfunktionalität zum bestehenden, soweit doch anscheinend zufriedenstellenden Feature...
Das wissen wir nicht, wir kennen ihre Pläne nicht. Aber jemandem, der die Grundlagen offensichtlich noch nicht gut genug kennt, ein komplexes Framework zu empfehlen, ist immer etwas riskant. Aber warum auch nicht, wenn Aufwand, Nutzen und Nebenwirkungen ein besseres Verhältnis zu ergeben versprechen als andere Lösungen?
Lo!