Browse Source

Siebter Push

remotes/origin/HEAD
Dennis 1 year ago
parent
commit
d85326b53f
  1. 45
      Programmierparadigmen.md

45
Programmierparadigmen.md

@ -56,3 +56,48 @@
- objektorientiert - objektorientiert
- funktional - funktional
- imperativ - imperativ
# Programmierprinzipien
## SOLID
### Separations of Concern
Module sollten einem und nur einem Akteur gegenüber verantwortlich sein
### Open/Closed Principle
Bei der Entwicklung von Klassen, Methoden, Modulen usw. sollen Erweiterungen einfach implimentierbar sein,
aber ohne die bestehenden Verhältnisse zu verändern.
### Liskov Substitution Principle
Subklassen sollen immer Eigenschaften der Superklasse erfüllen und auch als solche verwendet werden können.
### Interface Segregation Principle
Interfaces sollen an Bedürfnis des Client angepasst werden und nicht übermäßig überladen werden.
### Dependency Inversion Principle
Module höherer Ebene sollten nicht von Modulen niedriger Ebene abhängen. Beide sollten von Abstraktionen abhängen.
Abstraktionen sollten nicht von Details abhängen. Details sollten von Abstraktionen abhängen.
## STUPID
### Singelton
Es wird nur genau ein Objekt pro Klasse erzeugt und global zur Verfügung gestellt.
Es kann dadurch zu Abhängigkeiten führen, die man nicht direkt sehen kann.
### Tight Coupling
Module zu stark verkuppelt, dass Änderungen in einem Modul immer zu einer weiteren Änderung führen müssen.
Isolierte Testungen sind so fast unmöglich.
### Untestability
Untestbarkeit von Modulen (z.B. durch Tight Coupling)
### Premature Optimization
Frühzeitige Optimierung bevor überhaupt Probleme entstanden sind (viel Zeit für nichts).
### Indescriptive Naming
Ungenaue Benennung von Variablen, Funktionen usw. Andere Programmierer haben Probleme diesen Code nachzuvollziehen.
### Duplication
Keine Dopplung von den selben Code. Änderung müssen mehrmals vorgenommen werden.
Loading…
Cancel
Save