Aspekte der Implementierung Flashcards
Nennen Sie grundlegende Überlegungen für die Implementierung
- Wahl der Programmiersprache
- Etablierung eines Styleguides, Clean-Code Prinzipien
- Dokumentation (davor, danach, laufend)
- Refactoring
In welche vier Sprachtypen lassen sich “Entwicklungssprachen” kategorisieren und was ist deren jeweiliger Anwendungsbereich?
Konfigurationssprachen: Zusammenfügen vorgegebener Komponenten
Toolkit/Applikationssprachen: Steuerung vorgegebener Komponenten in Toolkits/Anwendungen
Skript-/Batch-/Makrosprachen: Entwicklung wiederholender Tätigkeiten als Skripte
Programmiersprachen: Entwicklung komplexer Systeme
Nenne drei Notationsformen für Programmiersprachen
Sprachlich : Rückgriff auf sprachliche Syntax und Grammatik
Formal : Rückgriff auf Symbole mit spezifischer Bedeutung, keine Ambiguitäten (C, C++, …)
Visuell (z.B. Unreal Blueprints)
Wie erreicht man lesbaren Quelltext (Clean Code)?
- Namenskonventionen/Style-Guides
- selbsterklärende Benennung von Variablen und Methoden
- Methodennamen decken vollständige Tätigkeit ab
- magische Zahlen durch Konstanten ersetzen
- -> geringer Kommentarbedarf, da selbsterklärend
Warum ist guter Quelltext wichtig?
- das Programmierteam kann diesen ebenfalls nachvollziehen
- geringe Komplexität reduziert den Aufwand sich reinzudenken
- Wiederverwendbarkeit durch bessere Beschreibung
- einfacheres Debugging
- -> Entwicklungszeit verringert sich
Zu welchem Zweck wird in der Software-Entwicklung dokumentiert?
Leser können effizient und effektiv Informationen extrahieren:
- effizient: keine Wiederholung/Verwirrung
- effektiv: notwendige Information ist vorhanden und aktuell
… Leser sind Entwickler, Designer, …
Wie kann die Aktualität der Dokumentation gewährleistet werden?
mit Dokumentationsgeneratoren (z.B. JavaDoc, Doxygen)
Quelltext wird mit besonderen Kommentaren annotiert (/** */)
–> Quelltextstruktur liefert Struktur der Dokumentation
Was versteht man unter Refactoring?
Veränderung eines Softwaresystems, wobei externes Verhalten unverändert bleibt,
aber Struktur/Lesbarkeit des Codes verbessert wird
Wie kann man sicherstellen, dass nach dem Refactoring das externe Verhalten des Systems unverändert ist?
- Schnittstelle bleibt konsistent
- Testbedingungen und Testergebnis sind gleich –> automatische/systematische Tests im Test-Driven-Development
- Vor-/Nachbedingungen gleich
Nenne Indikatoren dafür, dass refactored werden sollte
“Code Smells”:
- lange Methoden
- doppelter/redundanter Code
- zu viele Kommentare
- lange Parameterlisten
Geben Sie Prinzipien guter Entwicklung an
DRY - Don’t Repeat Yourself
KISS - Keep it simple stupid
NIH - Not invented here –> frühzeitige Entscheidung für Neuentwicklung, obwohl Re-Use effizienter wäre
Premature Optimization : Vermeidung verfrühter Optimierung