[discussie] fouten afvangen vs. performance
Ik maak dus een framework voor mezelf. Ik ben de enige die aan dit framework zal werken.
Nu vraag ik me af... vaak zie je in grote frameworks dat ze voordat er een include wordt uitgevoerd eerst wordt gekeken of het bestand wel bestaat. Ik vraag me af of ik dit ook moet doen. Ik weet namelijk dat het bestand bestaat, anders zou ik het niet includen. Per pagina-aanroep doe je stiekem behoorlijk wat includes. Als ik die controles niet inbouw scheelt dit in de performance.
Nu zullen er een heleboel mensen gaan zeggen... ja maar die paar milliseconden, waar maak je je druk om. In principe terecht, maar stel dat er in 1 pagina-aanroep 20 includes plaatsvinden, dan heb ik toch 20x een controle bespaard. En stel dat je in plaats van 1 website 100 websites zou hebben en veel bezoekers dus veel aanroepen, dan lijkt zo'n besparing me toch de moeite waard. Aangezien ik zelf de enige ben die aan het framework werkt, ben ik zelf ook de enige die een bestand zou kunnen verwijderen. En als dat gebeurt dan zie ik ook meteen dat het misgaat. Het risico om de controles niet uit te voeren lijkt me dus vrij verwaarloosbaar.
Precies dezelfde vraag heb ik ook over het ophalven van properties (array keys) uit een class. Stel ik wil een configuratiesetting ophalen. $title = $config->get('title'); Moet ik dan eerst controleren of die key wel bestaat? Of zal ik die controle overslaan. Als ik iets aanroep wat niet bestaat verschijnt er namelijk toch een php errormelding, zodat ik zie dat ik iets heb aangeroepen dat niet bestaat.
Ja zullen jullie nu denken, je geeft zelf al je eigen antwoord. Nou, niet helemaal. Als iemand hier hele goede steekhoudende argumenten aandraagt waarom ik wél zou moeten controleren of een file bestaat en waarom ik wél eerst zou moeten controleren of een key bestaat, dan sta ik daar zeker voor open. Maar op dit moment zie ik die argumenten niet dus ik ben benieuwd naar jullie mening.
Dus, wat vind jij? Ben jij het met me eens dat controleren eigenlijk niet nodig is, of ben je het daar juist niet mee eens? Ik hoop zowel reacties van voor- als tegenstanders te krijgen zodat ik een goede afweging kan maken.
En de rest: Gewoon eerst kijken of iets bestaat, zo kun je veel beter fouten afhandelen en is het debuggen van code in alle environments 10x makkelijker.
Wouter J op 13/01/2013 19:58:25:
Mij mag je aanwijzen welk framework eerst kijk of een bestand wel bestaat, ik ben ze niet tegen gekomen.
Meende dat dit toch vrij standaard is... ook bijv. controleren of een bepaalde action in een controller bestaat voordat deze wordt aangeroepen.
Wouter J op 13/01/2013 19:58:25:
En de rest: Gewoon eerst kijken of iets bestaat, zo kun je veel beter fouten afhandelen en is het debuggen van code in alle environments 10x makkelijker.
Fouten krijg ik dus meteen te zien via php foutmelding...
Nog meer meningen?
Quote:
Fouten krijg ik dus meteen te zien via php foutmelding...
Ja, maar als je een klasse in een klasse in een klasse hebt dan zie je de foutmelding van het gebruik van die functie, niet van de functie waar het echt fout gaat.
Ja, nou dat vind ik dan inderdaad een goed argument. Ben benieuwd of er nog meer van dit soort argumenten zijn.
Dat mocht het fout gaan je een mooiere melding richting de klant kan doen ipv een php error.
Maar de vraag is dus eigenlijk... meot je iets wat eigenlijk altijd goed gaat, toch afvangen? Het argument van Wouter dat je dan precies kunt zien waar de fout optreedt daar kan ik inkomen, maar weegt dat op tegen het performance voordeel?
Kijk op het moment dat ik zelf aan het programmeren ben, dan zet ik de php foutmeldingen aan, dus ik zie het meteen als er iets fout gaat. Als het eenmaal werkt, komt er niemand meer aan de code, dus kan er ook niks mis gaan.