Was sind Anzeichen für ‘Software rot’ (Softwareverfall)?
Was sind Beispiele für Gründe für unverantwortliches Programmieren?
Was sind Beispiele für professionelles Handeln in der Softwareentwicklung?
Pläne anpassen, regelmäßig reflektieren, üben und trainieren, vorbereitet sein (Tools, Dokumente kennen, ausgeschlafen sein).
Wie wird ‘Clean Code’ in der Vorlesung definiert?
Ein Code ist ‘clean’, wenn er einem (inhärenten) Wertesystem folgt, das Verantwortung unterstützt (gegenüber sich selbst, dem Käufer, dem Kunden).
Welche Fragen sollte ein ‘sinnvoller Name’ (Meaningful Naming) beantworten?
Warum existiert es? Was leistet es? Wie wird es benutzt?
Was ist ein Beispiel für eine schlechte Benennung laut Folie 10?
int_d
Was ist ein Beispiel für eine gute Benennung laut Folie 10?
int_elapsedTimeInDays
Was ist ein Beispiel für eine schlechte Benennung laut Folie 11?
public_List<int[]>getThem();
Was ist ein Beispiel für eine gute Benennung laut Folie 11?
public_List<int[]>getAllRoomNumbers();
Welche Regel für Benennungen wird auf Folie 12 genannt?
Benutze aussprechbare Namen.
Welche Regel für Benennungen wird auf Folie 13 genannt?
Vermeide Kodierungen (z.B. ‘mDb’, ‘stAddress’).
Welche Regel für Benennungen wird auf Folie 14 genannt?
Kein ‘mentales Mapping’ (z.B. serviceURL vs. service_url).
Welche Regel für Benennungen wird auf Folie 15 genannt?
Genau ein Begriff pro Konzept (z.B. nicht getAllUsers, fetchAllUsers, retriveAllUsers mischen).
Wie viele Aufgaben (Duties) sollte eine Funktion idealerweise haben?
Genau eine.
Was sollten Funktionen laut Folie 20-21 nicht haben?
Seiteneffekte (Side effects).
Welche Regel gilt für das Abstraktionslevel innerhalb einer Funktion?
Ein Abstraktionslevel pro Funktion.
Welche Regel gilt für die Anzahl der Parameter einer Funktion?
Funktionen sollten nur wenige Parameter haben.
Warum ist getKeywordDescription(String keyword, boolean isForce) ein schlechtes Beispiel?
Es verletzt möglicherweise das Prinzip ‘Nur eine Aufgabe’ (wegen des boolean-Flags).
Wie kann paintCircle(int x, int y, int radius, Color surface) verbessert werden?
Parameter zu einem Objekt zusammenfassen: paintCircle(Circle currentCircle, Color surface).
Wie sollte Fehlerbehandlung (Error Handling) im Code strukturiert sein?
Fehlerbehandlung ist eine eigene Aufgabe und sollte von der Geschäftslogik getrennt werden.
Was ist oft besser, als NULL zurückzugeben?
Eine Exception werfen (traw an exception).
Was ist eine Alternative zum Werfen von Exceptions bei der Fehlerbehandlung?
Special Case Objects (Spezialfall-Objekte) verwenden.
Was sollte man tun, anstatt schlechten Code zu kommentieren?
Den Code reparieren (fix it).
Welche Arten von Kommentaren sollte man laut Folie 40 vermeiden?
Müll (Garbage), wie z.B. auskommentierter Code oder Versionsmanagement-Informationen.