Foto - nesa - Unsplash
Akronym
SOLID - bezeichnet die ersten fünf Prinzipien der objektorientierten Programmierung:
- (SRP). / — . , - , « Unix» KISS.
- / (OCP). — . (Bertrand Meyer) — Eiffel.
- (LSP). , . , . (Barbara Liskov) — Clu.
- (ISP). (Robert Martin), , : « , ». .
- (DIP). , — . ( ).
Wenn Sie dies befolgen und Ihre Klassen und Funktionen so strukturieren, dass die SOLID-Prinzipien zutreffen, erhalten Sie wahrscheinlich zuverlässigen, verständlichen und leicht zu wartenden Code. Übrigens gibt es hier Beispiele , die veranschaulichen, wie jedes Prinzip funktioniert.
Wer hat SOLID gebracht
Wie Sie vielleicht erraten haben, war es Onkel Bob, der für den Großteil der Prinzipien verantwortlich war . Er beschrieb sie ausführlich in seinen 2000 Design Principles and Design Patterns , und das Akronym SOLID wurde später von Ingenieur Michael Feathers vorgeschlagen. Wenn Sie interessiert sind, hat Michael ein Buch, in dem er Ratschläge gibt, wie Sie das Legacy-System "wiederbeleben" und dabei nicht verrückt werden können.
Foto - Oskar Yildiz - Unsplash
SOLID hat es sich zur Aufgabe gemacht, Anwendungen zu entwickeln, die einfach zu warten und im Laufe der Zeit zu erweitern sind. Diese Richtlinien werden jedoch häufig kritisiert.
Wofür wird kritisiert?
Diese Prinzipien werden manchmal als "zu vage" bezeichnet, was es schwierig macht, sie in der Praxis anzuwenden. Der Programmierer und Autor Joel Spolsky bemerkte in einem der StackOverflow-Podcasts auch, dass die SOLID-Methodik zu utopisch ist und Entwickler dazu zwingt, Zeit für redundanten Code zu investieren, um einen Tick zu erhalten.
Er glaubt, dass es nicht notwendig ist, im Voraus zu versuchen, alle möglichen Szenarien zu berücksichtigen und einfach zu programmieren, Mängel schrittweise zu korrigieren und sich nicht auf ein imaginäres "Sicherheitssystem" zu verlassen. Spolsky negiert nicht die Bedeutung der Prinzipien, sondern nennt sie übertrieben.
Es gibt eine MeinungDieser SOLID-Code ist schwach kohärent und leicht zu testen, aber sehr schwer zu verstehen (Kritik verwendet das Wort "unverständlich"). Der Programmierer muss viele detaillierte Schnittstellen und kleine Klassen schreiben, die ablenkender und verwirrender sind als die Einrichtung eines Systems. Diese Aussage wird von vielen geteilt, die glauben, dass es für andere Entwickler ausreicht, sich auf die Einfachheit des Codes zu konzentrieren, um ihn zu unterstützen.
Foto - Kevin Canlas - Unsplash
Hacker News Themen sprechenund dass die Wahl der Architektur, des Technologie-Stacks und des Projektabhängigkeitsmanagements viel wichtiger ist und nicht die Grundprinzipien, auf denen das Schreiben basiert. Auch hier weisen sie auf die unnötige Komplexität hin, mit einem integrierten Systemdesign zu beginnen und auf das YAGNI-Prinzip oder " Sie werden es nicht brauchen " hinzuweisen . In gewissem Maße ist dies ein weiterer Remix des klassischen KISS-Ansatzes .
Wir müssen zugeben, dass es viele Aussagen zur Verteidigung von SOLID gibt. Einer der Bewohner von HN sagt, dass das Befolgen dieser Prinzipien dazu beitragen wird, die bedingte Bibliothek schnell zu ersetzen, wenn auf Abstraktionsebene etwas schief geht. Es reicht aus, um sicherzustellen, dass die Tests für die neue Implementierung ausgeführt werden, und das ist alles. Das Maximum besteht darin, zusätzlich die Abhängigkeiten für die alte Version der Klasse zu überprüfen und bei Bedarf die geänderte zu verwenden, damit die Tests erfolgreich bestanden werden. Dann wird es keine "unnötige Komplexität" im Code geben, und diejenigen, die sich später damit befassen werden, werden nicht mit dem sogenannten Syndrom der Ablehnung der Entwicklung eines anderen konfrontiert sein .
Es ist wichtig zu bedenken, dass die SOLID-Prinzipien nur Richtlinien sind, keine strengen Regeln. Und es wird immer Fälle geben, in denen es besser ist, sich an sie zu halten und sich zurückzuziehen.
1cloud.ru:
: