AI & Analytics

Python: van ingewikkelde code naar schone structuur voor beginners

KDnuggets
Python: van ingewikkelde code naar schone structuur voor beginners

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.

Lees het volledige artikel
Meer over AI & Analytics →