Samenvatting
Python-code opschonen begint met functies die één duidelijke taak hebben.
Python: van spaghetti code naar functies
Het artikel van KDnuggets laat zien hoe beginners een moeilijk onderhoudbaar Python-script stap voor stap kunnen refactoren. De voorbeeldfunctie `process_order` berekent prijzen, past kortingen toe, wijzigt voorraad en simuleert een bevestigingsmail binnen één loop.
Daar zit ook een verborgen fout in. De korting voor reguliere klanten controleert het tussentijdse totaalbedrag, niet het uiteindelijke orderbedrag. Daardoor hangt de korting af van de volgorde waarin artikelen worden verwerkt.
Python-refactoring maakt verantwoordelijkheden zichtbaar
De oplossing begint met het splitsen van de code in kleine, gerichte functies. Elke functie krijgt een helder doel, duidelijk gedefinieerde invoer en een begrijpelijk resultaat. Daardoor kun je onderdelen afzonderlijk lezen, testen, debuggen en aanpassen.
De aanpak vervangt ook de dictionary voor ordergegevens door een data class. Voor voorraadproblemen raadt het voorbeeld aan een fout te verhogen in plaats van alleen een waarschuwing te printen. Zo blijft een probleem niet stil op de achtergrond terwijl de rest van het script doorgaat.
Voor BI-professionals die Python-code onderhouden, zit de waarde vooral in de controleerbaarheid van losse logica. Een prijsberekening, voorraadmutatie en melding horen niet automatisch dezelfde verantwoordelijkheid te delen. Heldere relaties tussen functies maken het bovendien makkelijker om een wijziging te volgen zonder ongerelateerde code te doorzoeken.
Python: concrete takeaway
Neem één bestaande functie die meerdere taken combineert en teken eerst de verantwoordelijkheden uit. Splits daarna prijsberekening, voorraadbeheer, verzending en notificatie op in afzonderlijke functies met expliciete invoer en uitvoer.
Test die functies onafhankelijk. Controleer daarbij vooral verborgen afhankelijkheden, zoals de globale voorraad-dictionary en logica die onbedoeld afhangt van de volgorde van orderregels. Die controle onthult fouten eerder dan testen op alleen het eindbedrag.
Verdiep je kennis
ETL uitgelegd — Extract, Transform, Load in gewone taal
Wat is ETL? Leer hoe Extract, Transform en Load werkt, het verschil met ELT, en welke tools je kunt gebruiken. Helder ui...
KennisbankWat is Power BI? Alles wat je moet weten
Ontdek wat Microsoft Power BI is, hoe het werkt, wat het kost en waarom het de populairste BI-tool ter wereld is. Comple...
KennisbankPredictive Analytics — Wat kan het voor jouw bedrijf?
Ontdek wat predictive analytics is, hoe het werkt en hoe je het inzet voor je bedrijf. Van de 4 niveaus van analytics to...