Maandagochtend gaf ik een kleine demonstratie van mijn code van de week voordien en meteen merkte mijn stagementor Dimitri een probleem op. Het uploaden van de leveranciers naar Billit ging veel te traag.
Het was aan mij om uit te zoeken waarom dit het geval was en hoe ik dit zou kunnen oplossen.
De oorzaak zoeken was niet zo enorm moeilijk. Voor elke leverancier die ik moest oploaden, wat er toch wel een heel aantal waren, ging ik over elke property itereren om ze te valideren.
Na even testen in de Billit sandbox bleek dat een hoop van deze properties niet verplicht waren bij het aanmaken van een leverancier en dat ik dus de meeste checks achterwege kon laten. Dit alleen al gaf al enorm verschil in performantie.
Ook waren er sommige leveranciers die niet moesten worden overgezet naar Billit. Oorspronkelijk nam ik de volledige lijst van leveranciers over uit de database en filterde ik die in de applicatie.
Door een betere query te schrijven kon ik de resultaten al in de database filteren en moest ik dus wederom niet meer in mijn applicatie over een hele lijst loopen.
Deze aanpassingen hadden voldoende effect op de performantie om Dimitri tevreden te stellen.
Vanaf nu zou ik steeds wel performantie in mijn achterhoofd moeten houden bij het schrijven van nieuwe code, iets waar op school zelden rekening mee werd gehouden.
Na deze week heb ik het gevoel dat ik beter zicht heb op hoe ik (redelijk) performante code kan schrijven en hoe ik met de debugger op zoek moet gaan naar problemen binnen mijn applicatie. Toch betwijfel ik dat dit de laatste keer is dat ik mijn code moet herschrijven om deze efficiënter te maken.
