Wat houdt efficiëntie eigenlijk in m.b.t. programmeren? Zo kan denk ik een stuk code veel langer zijn dan een ander stuk code maar toch efficiënter? Heeft iemand een aantal tips om efficiënter te programmeren?
Efficientie is ook basis-functies gebruiken waar het kan en niet via 5 andere functies hetzelfde gebruiken. Efficientie is ook hergebruik mogelijk maken van code, denk OOP en functions. Efficientie is ook leesbare duidelijk code maken, maak het voor jezelf efficienter om code achteraf weer te lezen en te begrijpen. Efficientie is ook documenteren.
Efficiënt programmeren draait voornamelijk om tijd. Zorgen dat je de code (of gedeeltes van de code) zo makkelijk mogelijk kunt hergebruiken in andere projecten. Het is ook zorgen dat het toevoegen van nieuwe features of het oplossen van bugs zo kort mogelijk duurt. Dit betekend: goede scheiden van verantwoordelijkheden, open voor extensie, overzichtelijk.
>> Wat houdt efficiëntie eigenlijk in m.b.t. programmeren?
Efficiënt wil eigenlijk zeggen dat je in een bepaalde situatie de voor die situatie beste oplossing kiest. Zie ook de opmerkingen hierboven dus. Als je efficiënt programmeert, hou je er bijv. rekening mee dat wanneer de mogelijkheid bestaat dat je een bepaald onderdeel meerdere keren nodig hebt, je dat onderdeel dusdanig programmeert dat je het kunt hergebruiken in verschillende situaties.
>> Zo kan denk ik een stuk code veel langer zijn dan een ander stuk code maar toch efficiënter?
Als de code EXACT hetzelfde doet, maar de ene code is korter of slimmer geschreven, dan "wint" die code. Uiteraard gaan we er dan vanuit dat het om goede en goed leesbare code gaat. Het zou echter ook zo kunnen zijn dat een stukje code weliswaar korter is, maar onnodig gebruik maakt van resources die de performance negatief beïnvloeden. Stel dat je bijv. een kortere query gebruikt, maar wel 100x de database gaat aanspreken, dan ben je minder efficiënt bezig dan wanneer je een langere query gebruikt maar slechts 1x de database aanspreekt.
Efficiënt is ook in php goed omgaan met gegevens die je ophaalt uit MySQL. Het verwerken van data afkomstig uit MySQL (of andere db engine) in php moet je zoveel mogelijk vermijden. Ik zie regelmatig dat er veel te veel data wordt opgehaald als gevolg van een gebrek aan MySQL kennis. Data wordt dan geprocessed (while/foreach loops) in php in plaats van in efficiënt query's op de database waarna alleen het nodig wordt aangeleverd.