Dies zu erklären ist sehr schwierig, da Einfachheit nicht für alle dasselbe bedeutet.
Beispiel. Einige Entwickler halten das ?:für einfach, andere für ifbesser. Wenn es so weit ist, kann man nicht allen gefallen.
Im Allgemeinen bedeutet einfach ohne Komplexität . Um die Einfachheit zu verstehen, müssen wir die Komplexität verstehen.
Es gibt zwei Arten von Komplexität:
Wesentliche Komplexität bezieht sich auf eine Situation, in der alle vernünftigen Lösungen für ein Problem kompliziert (und möglicherweise verwirrend) sein müssen, da die "einfachen" Lösungen das Problem nicht angemessen lösen würden. - Wikipedia
Zufällige Komplexität ist Komplexität, die in Computerprogrammen oder deren Entwicklungsprozessen (Computerprogrammierung) auftritt und für das zu lösende Problem nicht wesentlich ist. - Wikipedia
Sie können die wesentliche Komplexität mit den folgenden Fragen überprüfen:
Ist diese Lösung einfach? Kann ich es meinem Kollegen in ein paar Minuten erklären und sie bekommen es? Gibt es eine einfachere Lösung für das Problem? Wenn ja, gibt es Kompromisse zwischen der komplizierten und der einfachen Lösung? Können wir mit diesen Kompromissen leben? Beispielsweise machen viele Programmierer einen Fehler bei der Mikrooptimierung, und ihre Lösung (und auch der Code) wird zu kompliziert.
Überprüfen Sie Ihre zufällige Komplexität:
Ist der Code einfach? Wenn ich in drei Monaten darauf zurückkomme, wie lange werde ich brauchen, um den Kontext in meinem Gehirn aufzubauen, damit ich die notwendigen Änderungen vornehmen kann? Hat alles in meinem Quellcode einen klaren Zweck und vermittelt er mir und anderen Entwicklern diesen Zweck effektiv ? Wie schwer ist es, meinen Code zu testen? Je komplizierter Ihr Code ist, desto schwieriger ist es normalerweise, einen Komponententest durchzuführen. Daher verwende ich diesen Code normalerweise als Maß für die Komplexität. Normalerweise möchten Sie kleine, gut benannte und fokussierte Klassen und Methoden. Entwurfsmuster helfen Ihnen in der Regel auch dabei.
Wenn Sie ein Entwurfsmuster verwenden möchten, nur weil Sie es gerade gelesen haben, führt dies wahrscheinlich zu einer ungewollten Komplexität. Wenn Sie etwas einbauen möchten, weil Sie denken, dass es „intelligent“ ist, führt dies wahrscheinlich zu einer zufälligen Komplexität.
Ich hoffe das hilft und vergiss nicht: Einfach heißt nicht EINFACH .