LU07.A12 - Refactoring im eigenen Projekt
Refactoren Sie eine echte Stelle in Ihrer Flask-Applikation und sichern Sie dabei das Material, das Sie im Portfolio für D1I und D1A brauchen.
Detaillierte Aufgabenstellung
Teil 1: Refactoring (D1I)
- Suchen Sie in Ihrem Projekt die längste Route oder die Funktion mit den meisten Verzweigungen.
- Schreiben Sie mindestens drei Tests, die ihr heutiges Verhalten festhalten. Bei einer Route: Statuscode und die entscheidenden Inhalte der Response.
- Ein Commit pro Technik, Commit-Message mit dem Namen der Technik.
- Ziel: Die Route enthält am Ende Request-Verarbeitung und Response, die Berechnung liegt in pure Funktionen ausserhalb.
Teil 2: Optimierung (D1A)
- Suchen Sie eine Stelle, an der es teuer werden kann: eine Suche in einer Liste, eine verschachtelte Schleife, eine Datenbankabfrage innerhalb einer Schleife, eine wiederholte Berechnung.
- Erzeugen Sie realistische Testdaten (nicht fünf Zeilen) und messen Sie mit
timeitodercProfile. - Setzen Sie eine Massnahme aus LU07g um, messen Sie nach und prüfen Sie das Ergebnis mit
assert. - Begründen Sie die gewählte Datenstruktur und nennen Sie ihren Preis.
Abgabe
- Vorher/Nachher als
git diffoder Screenshot aus der Commit-Historie - Testdatei und Ausgabe des grünen Testlaufs
- Messwerte vorher und nachher mit Angabe der Datenmenge
- Ein Abschnitt Reflexion: Was war schwierig? Welche Technik hat am meisten gebracht? Was würden Sie beim nächsten Mal anders machen?
Machen Sie das jetzt und nicht am Schluss. Die Commit-Historie lässt sich nachträglich nicht erfinden, und ohne Vorher-Zustand gibt es keinen Vorher/Nachher-Nachweis. Genau das verlangt das Portfolio (LB02) für D1I und D1A.
