Kapitel 5 - Programmierung & Team Flashcards

1
Q

Nennen sie Punkte die qualitätvollen Code ausmachen (5+1)

A
  • Funktionalität
  • Verständlichkeit, Wartbarkeit
  • Effizienz
  • Eleganz
  • Programmierkonventionen
    • Verwendete Konstrukte
    • Reihenfolgen
    • Klammerung
    • Namenskonventionen
    • Layout
    • Einrückung
  • “Style Guide”: Standardkonventionen (z.B. für Projekt, Firma)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist Pretty Printing?

A
  • Struktur eines Programmes klarer machen
  • Durch Einrückungen, Leerzeichen und Zeilenumbrüchen, je nach Werkzeug auch Schriftarten und Farben
  • z.B. Schlüsselbegriffe fett und Kommentare kursiv

Beispiele:

  • Variablendeklaration durch Tabulatoren an vertikalen Rastern ausrichten
  • Verschiedene Schriftgrößen für Schatelungstiefe
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist Literate Programming

A

Programmcode als ein literarisches Werk, soll daher leicht verständlich und sogar angenehm zu lesen sein

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

Wann ist Parallele Bearbeitung und Quellcode im Team problematisch?

A

Wenn beide an der selben Datei arbeiten.

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

Was ist CVS?

A

Concurrent Versions System

  • Versionsverwaltung
  • GNU Public License
  • Für alle Plattformen als Server und Client verfügbar
  • Integration in Eclipse und viele graphische Front-Ends
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist SVN?

A

Subversion

  • SVN als Ablösung von CVS mit Erweiterungen z.B. Löschen von Verzeichnissen, Dateiumbenennung
  • Open Source
  • für viele Plattformen als Server und Client verfügbar
  • Integration in Eclipse durch Plugin
  • SVN-Zugriff aus Explorer heraus
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Nennen Sie die 7 wichtigen Begriffe des Arbeiten im Teams (R-Wörter)

A
  • Version (oder Revision)
    • Geändertes System, z.B. im zeitlichen Verlauf
  • Variante (oder Branch)
    • Versionen eines Systems, die parallel aktuell sind
  • Release
    • Version eines Systems, die ausgeliefert wird
  • Mergen
    • Zusammenführen von parallelen Branches
  • Baseline (oder Basislinie)
    • Ein bestimmter Stand eines Systems zu einem bestimmten Zeitpunkt (meist dokumentenübergreifend)
  • Releasemanagement
    • Verwaltung der ausgelieferten Releases (Wer hat wann was erhalten?) und der Auslieferung (Wer wird wann was erhalten?)
  • Konfigurationsmanagement
    • Verwaltung von Versionen, Varianten, Releases und Baselines; Wiederherstellung von Releases und Baselines
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Beschreiben Sie das restriktive Modell

A

Restriktives Modell: SCCS, RCS, …

  • Entwickler holen sich bestimmte Versionen von Dateien (check out)
    • zum Lesen / Benutzen (beliebig viele Entwickler gleichzeitig)
    • zum Schreiben (Verbessern, Ändern, Weiterentwickeln etc.): maximal ein Entwickler zu einem Zeitpunkt
  • Geändert werden können nur Dateien, die zum Schreiben aus dem Repository geholt wurden (check out -> check in)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Beschreiben Sie das optimistische Modell

A

Optimistisches Modell: CVS, Subversion (SVN), …

  • Entwickler holen sich bestimmte Versionen von Dateien (check out / update)
  • Geändert werden können alle Dateien (commit);
    • Annahme: Es werden selten Konflikte zwischen Änderungen auftreten
  • Geänderte Dateien werden nach korrektem Abschluss der Änderungen kommentiert mit neuer Versionsnummer wieder ins Repository gestellt (check in / commit)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Anleitung eines idealen Workflows

A
  1. Machen Sie ein Update auf ihren Workspace, bevor Sie mit irgendwelchen Arbeiten beginnen, um sich den aktuellen Zustand (des trunks / eines branches) zu holen
  2. Arbeiten Sie (wie gewohnt) in ihrem lokalen Workspace
  3. Wenn ihre Arbeit abgeschlossen ist
    • Aktualisieren Sie ihren Workspace mit Update, um sicherzustellen, dass zwischenzeitliche Änderungen anderer Projektmitarbeiter keinen Konflikt mit ihren Arbeitsergebnissen verursachen. Gibt es Konflikte, übernehmen Sie den fremden Code, wo möglich und (zusammen mit Ihren Änderungen) sinnvoll und lösen Sie die Konflikte. Stellen Sie sicher, dass ihr Code weiterhin korrekt funktioniert.
    • Stellen Sie ihre Änderungen mit Commit ins Repository. Wiederholen sie vorher Schritt 1), falls dieser sehr lange gedauert hat
How well did you know this?
1
Not at all
2
3
4
5
Perfectly