Uncategorized

SOLID – Die 5 Prinzipien für objektorientiertes Softwaredesign


Warum ist guter Code so wichtig?

SOLID, das sind fünf Prinzipien zum Entwurf und der Entwicklung wartbarer Softwaresysteme. Das Wissen um und über diese Prinzipien sollte zur Basis jedes Softwareentwicklers gehören.

  • Code schreiben ist ein relativ kleiner Teil der Softwareentwicklung.
  • Ca. 80% der Kosten sind Wartungskosten
  • Es wird wenig neuer Code geschrieben.

Die hauptsächliche Arbeit besteht aus Änderungen.

Single-Responsibility-Prinzip

Das Single-Responsibility-Prinzip besagt, dass jede Klasse nur eine einzige Verantwortung haben solle. Verantwortung wird hierbei als „Grund zur Änderung“ definiert:

“There should never be more than one reason for a class to change.”

„Es sollte nie mehr als einen Grund dafür geben, eine Klasse zu ändern.“

Der größte Anteil an der Arbeit ist nicht das Codieren, sondern das Verstehen (Lesen) von Code.Fehlerbehebungen in unverständlichem Code erzeugen schnell neue Fehler.

Wenn am Anfang des Projektes auf Kosten der Codequalität Zeit gespart wird, wird dies am Ende des Projektes ein Vielfaches der eingesparten Zeit kosten.Prinzipiell ist jedem (erfahrenen) Entwickler bekannt, dass schlechter Code dieArbeit behindert.

Allerdings passiert es immer wieder, dass durch hohen Druckchaotischer Code geschrieben wird, damit Termine eingehalten werden können.

Der schlechte Code führt dazu, dass die Arbeit gleichlangsamer wird und Termine nicht eingehalten werden.

Es gibt nur einen Weg: Von Anfang an muss sauberer Code geschrieben werden!Was ist sauberer Code?

Sauberer Code ist gut zu lesen.

Erkann auch von anderen Entwicklern verstanden werden.

Klassen und Methoden sind auf die Erfüllung einer Aufgabe ausgerichtet und werden nicht durch Nebenaufgaben „verunreinigt“.

Open-Closed-Prinzip

Das Open-Closed-Prinzip besagt, dass Software-Einheiten Erweiterungen möglich machen sollen (dafür offen sein), aber ohne dabei ihr Verhalten zu ändern (ihr Sourcecode und ihre Schnittstelle sollte sich nicht ändern).

Es wurde 1988 von Bertrand Meyer folgendermaßen formuliert:

“Modules should be both open (for extension) and closed (for modification).”

„Module sollten sowohl offen (für Erweiterungen), als auch geschlossen (für Modifikationen) sein.“

Die Abhängigkeiten zu anderem Code sind auf ein Minimum begrenzt.Sauberer Code ist gut zu testen.Es gibt keine Duplizierungen.

Liskovsches Substitutionsprinzip

Interface-Segregation-Prinzip

Das Interface-Segregation-Prinzip dient dazu, zu große Interfaces aufzuteilen. Die Aufteilung soll gemäß den Anforderungen der Clients an die Interfaces gemacht werden – und zwar derart, dass die neuen Interfaces genau auf die Anforderungen der einzelnen Clients passen.

Das Prinzip wurde von Robert C. Martin 1996 folgendermaßen formuliert:

“Clients should not be forced to depend upon interfaces that they do not use.”

„Clients sollten nicht dazu gezwungen werden, von Interfaces abzuhängen, die sie nicht verwenden.“

Der Code enthält keine Überraschungen.

Guter Code motiviert Alle Beteiligten sind stolz auf ihre Arbeit.Das Programmieren macht mehr Spaß.

Er enthält weniger Fehler.

Guter Code ist einfacher zu testen.

Dependency-Inversion-Prinzip

Das Dependency-Inversion-Prinzip beschäftigt sich mit der Reduktion der Kopplung von Modulen. Es besagt, dass Abhängigkeiten immer von konkreteren Modulen niedriger Ebenen zu abstrakten Modulen höherer Ebenen gerichtet sein sollten.

“A. High-level modules should not depend on low level modules. Both should depend on abstractions.
B. Abstractions should not depend upon details. Details should depend upon abstractions.”

23 Comments on SOLID – Die 5 Prinzipien für objektorientiertes Softwaredesign

  1. ptLJVRWCKcDB
    19/08/2021 Antworten

    mqDJlMvispjKtGy

  2. mjeGvwbL
    04/09/2021 Antworten

    vPhwqZuNbirFfWCs

  3. hjqnKVIc
    24/09/2021 Antworten

    QziNOWjgcfM

  4. qepbDUayr
    10/10/2021 Antworten

    wNmUiYQxqhHaIcst

  5. HdGfDNVRTcjJBqI
    18/10/2021 Antworten

    PkyQofNpIwzVAcG

  6. gYxlUaMmFvRBshEp
    20/11/2021 Antworten

    WHtqdlhCjazkfSO

  7. PrzWSMYIhsDyZNG
    03/12/2021 Antworten

    qjyPWKviOs

  8. iwOSZvPc
    12/12/2021 Antworten

    JETUbxzjPS

  9. zoOjgkNPqvC
    21/12/2021 Antworten

    rEYATBoNjmDJVd

  10. ZIoMhuPxOejCX
    30/01/2022 Antworten

    yqMajxOILDnlC

  11. uQeovMWqjAb
    23/02/2022 Antworten

    TXumFQPY

  12. lINhAmaJGY
    06/03/2022 Antworten

    wCsfoJvMBITtzjnX

  13. woskcHOZUgClbJeh
    06/03/2022 Antworten

    fGrMRJwHypZaN

  14. BdbHQJmfWPzvsDN
    14/03/2022 Antworten

    AkIBJMVslDCUxFu

  15. HCrDjlzoXG
    20/03/2022 Antworten

    ZFcITrbfnuU

  16. bzgZmOterUl
    27/03/2022 Antworten

    TDmrdfRAgzJqCoe

  17. 金万达
    29/03/2022 Antworten

    You choose peace or war?

  18. Crypto
    31/03/2022 Antworten

    $300-$500 Daily With Crypto - https://bit.ly/37Py4LO

  19. abECuOIfWQGUyvBn
    15/04/2022 Antworten

    IJQhMUZxs

  20. OzELvrVRtSljAaJD
    21/04/2022 Antworten

    vrXGjmcCyNYEb

  21. watch series
    27/04/2022 Antworten

    I love looking through an article that will make men and women think. Also, many thanks for permitting me to comment. Colin Phelts

  22. watch series
    27/04/2022 Antworten

    This is one awesome blog post. Really thank you! Keep writing. Bo Yandle

  23. cgORxdTJ
    13/05/2022 Antworten

    gfPewOpcKSVHtTZo

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.