Code refactoren met behoud van gedrag.
Refactoring moet waarneembaar gedrag behouden tenzij een wijziging expliciet is gevraagd. Zoek tests of voorbeelden die onbedoelde verschillen kunnen detecteren.
Stem de werkwijze af op je taak.
Bepaal welk gedrag ongewijzigd moet blijven en welke duplicatie of complexiteit je wilt aanpakken. Voer een afgebakende structurele wijziging uit en vergelijk bekende gevallen, fouten en neveneffecten met het origineel.
- Wat je aanlevert
- Code en gevraagde structurele wijziging.
- Wat je krijgt
- Gerefactord concept met behoud van bedoeld gedrag.
Bekijk de invoer en het resultaat.
Illustratieve invoer en uitvoer · een leervoorbeeld, geen live uitvoering van WebAct
Voorbeeld invoerveld
Refactor this Python function without changing its result or empty-name error:
def label(name, loud):
if loud:
if not name:
raise ValueError("name required")
return name.upper()
if not name:
raise ValueError("name required")
return name.lower()Uitgewerkt voorbeeld
def label(name, loud):
if not name:
raise ValueError("name required")
return name.upper() if loud else name.lower()
Checks: label("Ada", True) → "ADA"; label("Ada", False) → "ada". An empty string raises ValueError("name required") in both modes.Laad deze invoer in de prompt en kopieer deze naar WebAct om de taak te proberen. Je resultaat kan afwijken van het voorbeeld.
Keuzes en probleemoplossing.
Mag refactoring foutgedrag bewust veranderen?
Alleen als die gedragsverandering bij de opdracht hoort. Behoud het anders of maak er een expliciete vervolgkeuze van.
Waarom verandert het extraheren van gedeelde code de uitkomst van één tak?
Controleer uitvoeringsvolgorde, toestand en takspecifieke voorwaarden. Vergelijkbare code kan onder verschillende aannames werken.
Probeer het met je eigen bron.
Vervang het voorbeeld door je eigen materiaal in de taakprompt. Behoud de eisen die je nodig hebt en kopieer de taak naar WebAct.
De taak aanpassen en kopiëren ↑