Een werkend programma verbeteren
Een programma kan goed werken en toch lastig te begrijpen zijn. De opbouw verbeteren zonder het bedoelde gedrag te veranderen heet refactoren. Je kunt bijvoorbeeld een duidelijkere naam kiezen of herhaalde stappen in een functie zetten.
Zorg eerst dat het werkt. Maak het daarna makkelijker te lezen. Bewaar vóór een verandering een werkende versie, zodat je iets hebt om mee te vergelijken.
Orden je opdrachten
Stel dat je een lang recept herschrijft, zodat alle stappen voor de saus bij elkaar staan. Het eten moet hetzelfde blijven, maar het recept wordt duidelijker.
In code kan een functie stappen groeperen die samen een nuttige taak hebben. Je hoeft niet voor elke losse regel een functie te maken. Kies groepjes waarvoor een naam de taak goed kan uitleggen.
Geef een herhaalde taak een naam
Stel dat je programma vaak munten en sterren optelt, waarbij elke ster drie punten waard is. We kunnen die berekening één keer beschrijven:
# taal: nl
functie berekenScore(munten, sterren):
geef munten + sterren * 3
zeg berekenScore(2, 4)
zeg berekenScore(5, 1)
De parameters munten en sterren ontvangen de waarden voor één aanroep. geef stuurt het berekende getal terug. De functie toont zelf niets. De aanroepende zeg laat elk resultaat zien.
Voorspel en probeer
Bereken beide antwoorden op papier met de puntenregel.
14
8
Dat zijn ook de antwoorden die de eerdere losse berekeningen moesten geven. Dezelfde antwoorden houden hoort bij het controleren van een refactor.
Jouw uitdaging
Voeg een aanroep toe voor nul munten en nul sterren. Bedenk daarna of de functie een nog duidelijkere naam kan krijgen. Verander de naam zowel bij de functie als bij alle aanroepen. Controleer vervolgens de drie resultaten opnieuw.
Een veelgemaakte fout
De spelregel veranderen terwijl je code anders indeelt, maakt het lastiger te ontdekken waarom een antwoord verandert. Sterren vijf punten waard maken is een nieuwe spelregel, niet alleen een refactor. Doe dat als een aparte verandering met nieuwe verwachte resultaten.
Kortere code is niet altijd duidelijkere code. Kies namen en stappen die je hardop kunt uitleggen. Nuttig commentaar vertelt een reden, zoals waarom sterren extra punten geven, in plaats van elke opdracht nog eens in woorden te herhalen.
