Ich habe viel Zeit damit verbracht, verschiedene Bücher über "gutes Design", "Designmuster" usw. zu lesen . Ich bin ein großer Fan des SOLID- Ansatzes, und jedes Mal, wenn ich ein einfaches Stück Code schreiben muss, denke ich darüber nach die Zukunft. Wenn Sie also eine neue Funktion oder eine Fehlerbehebung implementieren müssen, fügen Sie einfach drei Codezeilen wie folgt hinzu:
if(xxx) {
doSomething();
}
Das heißt nicht, dass ich es so mache. Wenn ich der Meinung bin, dass dieser Code in naher Zukunft wahrscheinlich größer wird, denke ich über das Hinzufügen von Abstraktionen, das Verschieben dieser Funktionalität an einen anderen Ort usw. nach. Das Ziel, das ich verfolge, ist es, die durchschnittliche Komplexität so zu halten, wie sie vor meinen Änderungen war.
Ich glaube, vom Standpunkt des Codes aus ist es eine gute Idee - mein Code ist nie lang genug und es ist ziemlich einfach, die Bedeutungen für verschiedene Entitäten wie Klassen, Methoden und Beziehungen zwischen Klassen und Objekten zu verstehen.
Das Problem ist, dass es zu lange dauert und ich denke oft, es wäre besser, wenn ich dieses Feature einfach so implementiere, wie es ist. Es geht nur um "drei Codezeilen" vs. "neue Schnittstelle + zwei Klassen, um diese Schnittstelle zu implementieren".
Vom Standpunkt des Produkts aus (wenn wir über das Ergebnis sprechen ) sind die Dinge, die ich tue, völlig sinnlos. Ich weiß, dass es wirklich toll ist, guten Code zu haben, wenn wir an der nächsten Version arbeiten. Andererseits wurde die Zeit, die Sie aufgewendet haben, um Ihren Code "gut" zu machen, möglicherweise für die Implementierung einiger nützlicher Funktionen aufgewendet.
Ich bin oft sehr unzufrieden mit meinen Ergebnissen - guter Code, der nur A kann, ist schlechter als schlechter Code, der A, B, C und D kann.
Wird dieser Ansatz wahrscheinlich zu einem positiven Nettogewinn für ein Softwareprojekt führen, oder ist es eine Zeitverschwendung?