modul:m323:learningunits:lu07:aufgaben:langefunktion

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m323:learningunits:lu07:aufgaben:langefunktion [2026/09/09 11:13] – LU07.A04 - Lange Funktion zerlegen (neu) adminmodul:m323:learningunits:lu07:aufgaben:langefunktion [2026/09/09 13:52] (aktuell) – Repo-Verlinkung korrigiert: nodisp im Footer statt Link im Text admin
Zeile 51: Zeile 51:
 ==== Detaillierte Aufgabenstellung ==== ==== Detaillierte Aufgabenstellung ====
  
-  - **Sicherheitsnetz zuerst:** Schreiben Sie einen Test, der die obige Ausgabe festhältEr muss vor Ihrem ersten Umbau grün sein.+  - **Sicherheitsnetz prüfen:** ''pytest'' ausführenAlle sechs Tests sind grün, bevor Sie irgendetwas ändern.
   - Wenden Sie mindestens vier Techniken aus [[modul:m323:learningunits:lu07:techniken|LU07c]] an. Erwartet werden: Extract Function, Named Constant, Replace Loop with Pipeline, sprechende Namen.   - Wenden Sie mindestens vier Techniken aus [[modul:m323:learningunits:lu07:techniken|LU07c]] an. Erwartet werden: Extract Function, Named Constant, Replace Loop with Pipeline, sprechende Namen.
-  - Nach **jedem** einzelnen Umbau: Test laufen lassen und committen. Die Commit-Message nennt die Technik.+  - Nach **jedem** einzelnen Umbau: Test laufen lassen und committen. Die Commit-Message nennt die Technik, zum Beispiel ''refactor: Rabattgrenze als Konstante benannt''.
   - Am Schluss darf keine Funktion länger als etwa zehn Zeilen sein.   - Am Schluss darf keine Funktion länger als etwa zehn Zeilen sein.
  
-==== Abgabe ====+==== Regeln ====
  
-  * die refactorierte Datei +  * ''main_test.py'' wird **nicht** verändert. Wer den Test anpasst, damit er grün wird, hat die Aufgabe nicht gelöst. 
-  * die Testdatei +  * Die Namen ''BESTELLUNGEN'' und ''bericht'' bleiben erhalten. 
-  * die Ausgabe von ''git log --oneline'' Ihrer Refactoring-Commits+  * Neue Hilfsfunktionen dürfen Sie frei benennen. 
 + 
 +==== Bewertung ==== 
 + 
 +^ Teil ^ Punkte ^ 
 +| Tests (''main_test.py'') | 8 | 
 +| pylint (''main.py'') | 5 |
  
 <WRAP center round tip 80%> <WRAP center round tip 80%>
-Diese Aufgabe erzeugt genau das Material, das im Portfolio für **D1I** verlangt wird: Vorher/Nachher aus der Commit-Historie, gleiches Verhalten per Test belegt.+Diese Aufgabe erzeugt genau das Material, das im [[modul:m323:leistungsbeurteilungen:lb02:start|Portfolio (LB02)]] für **D1I** verlangt wird: Vorher/Nachher aus der Commit-Historie, gleiches Verhalten per Test belegt
 +</WRAP> 
 + 
 +<WRAP center round important 80%> 
 +Die Beispieldaten sind nicht der einzige Testfall. Denken Sie an die **leere Liste** und an die Rabattgrenze bei genau 100 Franken - dort passieren beim Umbau die meisten stillen Verhaltensänderungen.
 </WRAP> </WRAP>
  
 ---- ----
 +<nodisp>https://github.com/templates-python/m323-lu07-a04-langefunktion</nodisp>
 {{tag>M323-LU07 M323-D1I}} {{tag>M323-LU07 M323-D1I}}
 [[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi [[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi
  
  • modul/m323/learningunits/lu07/aufgaben/langefunktion.1788945227.txt.gz
  • Zuletzt geändert: 2026/09/09 11:13
  • von admin