Das Single-Responsibility-Prinzip (SRP) // deutsch
ฝัง
- เผยแพร่เมื่อ 8 ม.ค. 2025
- Das Single-Responsibility-Prinzip (SRP) ist das erste der fünf SOLID-Prinzipien. Es stammt von Robert C. Martin und hängt eng mit dem Konzept der Kohäsion zusammen, betrifft also auch die Zuordnung von fachlicher Verantwortung zu Modulen, Klassen und Funktionen. Doch was besagt es im Detail und wie lässt es sich auch außerhalb der objektorientierten Programmierung anwenden?
────────────────────
Über the native web 🦄
Wir sind ein Beratungs-, Schulungs- und Entwicklungsunternehmen, das sich auf Web- und Cloud-Technologien spezialisiert hat. Wir streben nach intelligenten und eleganten Lösungen für komplexe Probleme, und wir glauben, dass Softwareentwicklung kein Selbstzweck ist. Stattdessen sollte Software tatsächliche Probleme der realen Welt lösen.
Wir glauben, dass native Web- und Cloud-Technologien das Fundament sind, auf dem die Zukunft aufbaut. Unsere Kernkompetenz ist der Entwurf und die Entwicklung verteilter Web- und Cloud-Anwendungen unter Verwendung dieser Technologien in interdisziplinären Teams. Wir entwickeln auch unser eigenes Open-Source-Framework namens wolkenkit. Und wir lieben es, unser Wissen in Schulungen und Workshops, auf Konferenzen und bei Usergroups zu teilen.
⬥ Kanal abonnieren: / @thenativeweb
────────────────────
Weiterführende Links 🌍
⬥ Webseite: www.thenativew...
⬥ Twitter: / thenativeweb , / goloroden
⬥ GitHub: github.com/the...
⬥ wolkenkit: www.thenativew...
⬥ Impressum: www.thenativew...
Eine (auch von Uncle Bob genutzte) Erweiterung zu 'eine Komponente sollte genau einen Grund haben, sich zu ändern' ist es sicherzustellen, dass eine Komponente nur für genau einen Stakeholder bzw. einer Stakeholdergruppe gebaut wird.
[gr] Ja, das stimmt - wobei sich dann direkt die Frage anschließt, was ein "Stakeholder" in dem Kontext genau ist 😉
In Clean Architecture nennt Uncle Bob diese Definition, die du hier beschreibst, Skillex. Allerdings wird an gleicher Stelle auch gesagt, dass das im Video beschriebene Prinzip, salopp 'Funktionen sollen nur eine Aufgabe erfüllen' existiert, explizit aber nicht das Single Responsibility Principle ist. Dies werde oft falsch verstanden, so Uncle Bob.
Danke für die ganzen Videos. 👌
Also der Monitor macht mich schon neidisch... verführt er dazu die Formatter zu deaktivieren und sehr lange Codezeilen zu schreiben? 😂😉 Hätte es die Monitore schon zu COBOL Zeiten gegeben, wäre da sicherlich einiges anders gelaufen.
Sehr gerne - freut mich ja, wenn sie nützen und gefallen 😊
Wegen des Monitors: Also bei mir nicht - ich habe aber auch häufig drei bis vier Anwendungen horizontal nebeneinander platziert, so dass die Fenster an sich gar nicht größer sind als „normal“, ich habe nur mehr Fenster im Blick als auf einem „normalen“ Monitor.
Insgesamt kann ich den Bildschirm aber nur empfehlen, schönes Gerät, man gewöhnt sich nur leider viel zu schnell an den eigentlich vielen Platz 😉
Das Prinzip ist verwirrend. Uncle Bob spricht davon, dass es bei dem Prinzip um Menschen geht. Man sollte Module, die für den Akteur A erstellt wurden, nicht mit Modulen mischen, die dem Akteur B gehören. Ein Akteur könnte ein CTO, CFO, Projektleiter oder Ähnliches sein:
"A module should be responsible to one, and only one, actor."
Es geht bei dem Prinzip also nicht darum, dass eine Funktion nur eine einzige Sache macht.
"It is too easy for programmers to hear the name and then assume that it means that every module should do just one thing.
Make no mistake, there is a principle like that. A function should do one, and only one, thing. ... But it is not one of the SOLID principles-it is not the SRP."
Dass eine Funktion/Klasse/... nur eine einzige Aufgabe hat, ist das Separation of Concerns Prinzip.
So richtig verwirrend wird es, weil die allermeisten Beispiele in Richtung Separation of Concerns gehen und gar nicht thematisieren, dass es um Akteure geht.
[gr] Danke für Deinen Kommentar und die Erläuterung 😊