Software Design
-
Welche Punkte müssen auf einen Programmcode zutreffen, damit ihr sagen würdet, dass die SW (Ohne GUI Design) gut designet ist?
-
- Don't Repeat Yourself
- Keep it simple, stupid
- Favour Composition over Inheritance
- One level of abstraction
- Single Responsibility Principle
- Separation of Concerns
- Interface Segregation Principle
- Dependency Inversion Principle
- Liskov Substitution Principle
- Principle of least astonishment
- Information Hiding Principle
- Open Closed Principle
- Tell, don't ask
- Law of Demeter
- You Ain't Gonna Need It
-
Die Prinzipien sind gut, nur die helfen hier nicht weiter.
Auch sauberer Code kann auf eine unpraktische Architektur auf liegen.
Und wenn man das Programm und den inneren aufbau nicht kennt, kann man nicht sagen ob es gut oder schlecht ist.Jede Software hat andere Spezifikation, was wie am besten zu designen ist muss man von Fall zu Fall betrachten.
Die CCD Prinzipien sowie die etablierte Patterns unterstützen lediglich. Sofern man die passendsten Patterns gewählt hat.
-
Das ist ein altes Thema seitdem programmiert wird und lässt sich nicht vollkommen lösen. Ein SW-Projekt fängt beim Verständnis der Aufgabenstellung an. Fehlt dieses oder es ist unvollständig, so ist auch mit allen denkbaren Hilfsmitteln kein 'sauberes' Design möglich. Man muss lernen, in überschaubaren Blöcken für Teilaufgaben zu denken. Ändert sich ein solcher Block durch neues Verständnis oder neue Anforderungen darf nicht das gesamte Design zusammenbrechen. Also: klar abgrenzbare Programmblöcke bilden mit keinen oder nur wenig Auswirkungen auf andere Programmbklöcke!
Das war schon immer das tägliche Brot eines Programmierers: Erst anfangen, dann erst sagt dir der Anwender, was er denn genau haben wollte.