Lesson 3 Flashcards

(39 cards)

1
Q

Was sind Anzeichen für ‘Software rot’ (Softwareverfall)?

A
  • Reduzierte Ausdruckskraft,
  • schwerere Wartbarkeit,
  • zeitaufwändige Änderungen,
  • Ansammlung von Fehlern,
  • Verletzung der Softwarearchitektur.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind Beispiele für Gründe für unverantwortliches Programmieren?

A
  • Mangel an Zeit, ‘mache ich später richtig’,
  • Unfähigkeit (fehlende Fähigkeiten),
  • Mangel an Konzentration.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was sind Beispiele für professionelles Handeln in der Softwareentwicklung?

A

Pläne anpassen, regelmäßig reflektieren, üben und trainieren, vorbereitet sein (Tools, Dokumente kennen, ausgeschlafen sein).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie wird ‘Clean Code’ in der Vorlesung definiert?

A

Ein Code ist ‘clean’, wenn er einem (inhärenten) Wertesystem folgt, das Verantwortung unterstützt (gegenüber sich selbst, dem Käufer, dem Kunden).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Welche Fragen sollte ein ‘sinnvoller Name’ (Meaningful Naming) beantworten?

A

Warum existiert es? Was leistet es? Wie wird es benutzt?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist ein Beispiel für eine schlechte Benennung laut Folie 10?

A

int_d

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist ein Beispiel für eine gute Benennung laut Folie 10?

A

int_elapsedTimeInDays

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist ein Beispiel für eine schlechte Benennung laut Folie 11?

A

public_List<int[]>getThem();

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was ist ein Beispiel für eine gute Benennung laut Folie 11?

A

public_List<int[]>getAllRoomNumbers();

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Welche Regel für Benennungen wird auf Folie 12 genannt?

A

Benutze aussprechbare Namen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Welche Regel für Benennungen wird auf Folie 13 genannt?

A

Vermeide Kodierungen (z.B. ‘mDb’, ‘stAddress’).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Welche Regel für Benennungen wird auf Folie 14 genannt?

A

Kein ‘mentales Mapping’ (z.B. serviceURL vs. service_url).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Welche Regel für Benennungen wird auf Folie 15 genannt?

A

Genau ein Begriff pro Konzept (z.B. nicht getAllUsers, fetchAllUsers, retriveAllUsers mischen).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wie viele Aufgaben (Duties) sollte eine Funktion idealerweise haben?

A

Genau eine.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was sollten Funktionen laut Folie 20-21 nicht haben?

A

Seiteneffekte (Side effects).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Welche Regel gilt für das Abstraktionslevel innerhalb einer Funktion?

A

Ein Abstraktionslevel pro Funktion.

17
Q

Welche Regel gilt für die Anzahl der Parameter einer Funktion?

A

Funktionen sollten nur wenige Parameter haben.

18
Q

Warum ist getKeywordDescription(String keyword, boolean isForce) ein schlechtes Beispiel?

A

Es verletzt möglicherweise das Prinzip ‘Nur eine Aufgabe’ (wegen des boolean-Flags).

19
Q

Wie kann paintCircle(int x, int y, int radius, Color surface) verbessert werden?

A

Parameter zu einem Objekt zusammenfassen: paintCircle(Circle currentCircle, Color surface).

20
Q

Wie sollte Fehlerbehandlung (Error Handling) im Code strukturiert sein?

A

Fehlerbehandlung ist eine eigene Aufgabe und sollte von der Geschäftslogik getrennt werden.

21
Q

Was ist oft besser, als NULL zurückzugeben?

A

Eine Exception werfen (traw an exception).

22
Q

Was ist eine Alternative zum Werfen von Exceptions bei der Fehlerbehandlung?

A

Special Case Objects (Spezialfall-Objekte) verwenden.

23
Q

Was sollte man tun, anstatt schlechten Code zu kommentieren?

A

Den Code reparieren (fix it).

24
Q

Welche Arten von Kommentaren sollte man laut Folie 40 vermeiden?

A

Müll (Garbage), wie z.B. auskommentierter Code oder Versionsmanagement-Informationen.

25
Welche Art von Kommentar wird auf Folie 41 als 'Klatsch' (Gossip) bezeichnet und sollte vermieden werden?
Offensichtliche Kommentare, die keinen Mehrwert bieten (z.B. /** Open the database */ public void openDatabase()).
26
Wie sollten Klassen laut Folie 42 organisiert sein?
Schrittweise nach unten (step down) und in Sektionen gruppiert (z.B. public-Member zuerst).
27
Was bedeutet 'hohe Kohäsion' (high cohesion) bei Klassen?
Die Elemente innerhalb der Klasse gehören stark zusammen.
28
Was bedeutet 'niedrige Kopplung' (low coupling) bei Klassen?
Die Klasse hat wenige Abhängigkeiten zu anderen Klassen.
29
Welches Gesetz oder Prinzip soll laut Folie 45 zur Wartbarkeit angewendet werden?
Das 'Gesetz von Demeter' (Law of Demeter) oder 'Prinzip der geringsten Kenntnis'.
30
Wie wird eine Codezeile wie context.options.path.absolute genannt?
Ein 'Train Wreck' (Zugunglück).
31
Was sind Merkmale einer wartbaren, modularen Struktur laut Folie 46?
Klare Schnittstellen (Clear interfaces) und automatisierte, ausführbare Tests.
32
Was sind Anzeichen für 'Software-Architektur-Verfall' (Software architecture rot)?
Änderungen an der Architektur, teilweise veraltete Module, redundante Module, stark gekoppelte Module.
33
Was ist der erste Schritt beim 'Test-driven development' (TDD)?
Beginne mit dem Erstellen von Tests.
34
Was passiert beim TDD, nachdem ein Test erstellt wurde (bevor Code geschrieben wird)?
Der Test schlägt fehl (fails), da noch kein Code existiert.
35
Wann wird beim TDD der Code aufgeräumt (Clean up the code)?
Nachdem der Test erfolgreich war (successful).
36
Was ist laut Folie 50 beim TDD nicht erlaubt?
Code ohne Tests (Code without tests is not allowed).
37
Was ist 'Clean Code' laut dem Fazit auf Folie 52?
Eine Sammlung von 'Best Practices'.
38
Was liefert 'Clean Code' laut dem Fazit auf Folie 52?
Methoden, um qualitativ hochwertige Ergebnisse zu konstruieren.
39
Was empfiehlt 'Clean Code' laut dem Fazit auf Folie 52?
Testen, um die Qualität zu überprüfen.