Beste mensen, ik ben nu zo'n 3 weken voor het eerst aan het programmeren. Ik heb geen cursus oid gehad, alles mezelf aangeleerd. Tot nu toe gaat het wel oke. Maar ik moet nu toch ff advies vragen.
Ik ben dus bezig met het ontwikkelen van een game voor een mobile device. Na 2 weken had ik de functionaliteit zo goed als af, maar als ik dan naar m'n code keek werd ik daar niet vrolijk van. De code was niet bloated ofzo, juist niet, alles was heel direct en to-the-point maar juist daarom werd de code moeilijk te begrijpen. Ik gebruik een object-oriented taal, maar een logische indeling in classes ontbrak in mijn programma een beetje. Ik maakte geen gebruik van Model classes maar propte alle functionaliteit in een Controller class. Het werkte, maar het was geen nette en onderhoudbare code.
Dus begon ik mijn app te herschrijven. Ik bedacht vooraf een logische class-structuur, hield Model classes zoveel mogelijk gescheiden van Controller en View classes, documenteerde alles netjes. Het resultaat was, al zeg ik het zelf, een redelijk nette structuur die denk ik wel volgens het boekje was. De code was goed te lezen/begrijpen, functionaliteit veranderen/toevoegen werd simpel, kortom: nette, overzichtelijke code. Maar bij het testen begon me steeds meer op te vallen dat de performance achteruit was gegaan. Waar m'n oude app heel snel en snappy draaide had m'n nieuwe versie een beetje last van "lag". Logisch ook, want ik had meer classes en methods toegevoegd en dat betekent overhead. De oude code was veel "directer" en vereiste veel minder method calls.
En nu ben ik dus in dubio. Aan de ene kant werk ik veel liever met de nieuwe code, die is voor mij veel prettiger te onderhouden. Maar ik vind het jammer dat ik dan aan performance moet inboeten, vooral omdat je op een mobile device toch liever een snelle en lichte app draait.
Wat zeggen jullie? Is het verstandig om sowieso een goede structuur te hebben die makkelijk te onderhouden is, zodat je later makkelijker kan optimaliseren/finetunen om alsnog meer performance te krijgen, of is het slimmer om nu de meest efficiente (snelle) codebase te pakken en daar op voort te borduren?
Houd ook in het achterhoofd dat het om een mobile app gaat; als het om een desktop app ging had ik sowieso de gestructureerde versie gehouden aangezien de performance dan veel minder een issue was, maar op een mobile device wil je toch rekening houden met performance en batterijduur.
Ik hoor graag jullie meningen.
Ik ben dus bezig met het ontwikkelen van een game voor een mobile device. Na 2 weken had ik de functionaliteit zo goed als af, maar als ik dan naar m'n code keek werd ik daar niet vrolijk van. De code was niet bloated ofzo, juist niet, alles was heel direct en to-the-point maar juist daarom werd de code moeilijk te begrijpen. Ik gebruik een object-oriented taal, maar een logische indeling in classes ontbrak in mijn programma een beetje. Ik maakte geen gebruik van Model classes maar propte alle functionaliteit in een Controller class. Het werkte, maar het was geen nette en onderhoudbare code.
Dus begon ik mijn app te herschrijven. Ik bedacht vooraf een logische class-structuur, hield Model classes zoveel mogelijk gescheiden van Controller en View classes, documenteerde alles netjes. Het resultaat was, al zeg ik het zelf, een redelijk nette structuur die denk ik wel volgens het boekje was. De code was goed te lezen/begrijpen, functionaliteit veranderen/toevoegen werd simpel, kortom: nette, overzichtelijke code. Maar bij het testen begon me steeds meer op te vallen dat de performance achteruit was gegaan. Waar m'n oude app heel snel en snappy draaide had m'n nieuwe versie een beetje last van "lag". Logisch ook, want ik had meer classes en methods toegevoegd en dat betekent overhead. De oude code was veel "directer" en vereiste veel minder method calls.
En nu ben ik dus in dubio. Aan de ene kant werk ik veel liever met de nieuwe code, die is voor mij veel prettiger te onderhouden. Maar ik vind het jammer dat ik dan aan performance moet inboeten, vooral omdat je op een mobile device toch liever een snelle en lichte app draait.
Wat zeggen jullie? Is het verstandig om sowieso een goede structuur te hebben die makkelijk te onderhouden is, zodat je later makkelijker kan optimaliseren/finetunen om alsnog meer performance te krijgen, of is het slimmer om nu de meest efficiente (snelle) codebase te pakken en daar op voort te borduren?
Houd ook in het achterhoofd dat het om een mobile app gaat; als het om een desktop app ging had ik sowieso de gestructureerde versie gehouden aangezien de performance dan veel minder een issue was, maar op een mobile device wil je toch rekening houden met performance en batterijduur.
Ik hoor graag jullie meningen.