Hoe bouw je razendsnelle toepassingen
Het doel van de ontwikkelaar is de prestaties van de app te verhogen en de gebruikerservaring te verbeteren. Vaak is de tijd tegen de ontwikkelaars: de belanghebbenden hijgen in hun nek, de concurrentie dreigt met betere apps te komen dan zij kunnen produceren en gebruikers wenken om over te stappen op apps van concurrenten. De projectmanagementteams zijn dus altijd op zoek naar methoden waarmee ze snel – razendsnel – apps kunnen bouwen. En ja, gewoon snel is niet genoeg. Ze moeten zich concentreren op het veerkrachtig maken van deze apps, met een lage latentie, en geweldige rendertijden bieden.
De juiste tech stack kiezen
Een tech stack is een verzameling programmeertalen, tools, technologieën en softwareproducten die ontwikkelaars gebruiken om een functionele webapp te maken. Dit kan worden gecategoriseerd als server side (back end) stack, client side (front end) stack en middle ware. Door het grote aantal gem libraries is RoR het meest gebruikte framework voor snelle app ontwikkeling. Als u bijvoorbeeld net begint met uw bedrijf, kunt u een taal/raamwerk/CMS-tool kiezen waarmee u een prototype kunt samenstellen. Het gereedschap met de kortste leertijd, is beter voor u.
Voortijdige optimalisatie vermijden
Donald Knuth zei ooit: “Voorbarige optimalisatie is de wortel van alle kwaad”.
Ontwikkelaars besteden veel tijd aan het nadenken over de niet-kritische delen van een software, in plaats van het ontwikkelen van de kritische delen van de code. Ze hechten geen belang aan de kritieke delen van de code, noch werken ze aan de code die moet worden geoptimaliseerd.
Onervarenheid kan dat veroorzaken. Om te voorkomen dat soortgelijke dingen met uw team gebeuren, moet u ervoor zorgen dat het team de eerste versie van de code schrijft zonder zich zorgen te maken over de prestaties ervan. Later kan het team met behulp van een profiler nagaan waar de knelpunten zich bevinden.
Zo kunnen zij de gebieden controleren die echt aandacht nodig hebben en zich niet druk maken over wat niet nodig is.
Op PHP-gebied zijn er enkele tools die u kunt gebruiken om uw code te profileren. Dat zijn xdebug, xhprof, Symphony profiler, Tideways, Blackfire.io en The Stopwatch Component.
Doe alleen wat je moet doen
Vaak doet uw code bepaalde dingen die buiten uw verwachting vallen. Vooral als het gaat om het gebruik van complexe bibliotheken en kaders. Soms laadt u klassen die u niet van plan was te gebruiken, of opent u een databaseverbinding die niet nodig was om resultaten te genereren voor een specifiek verzoek.
Die moet je zien te voorkomen, want die kunnen je prestaties in de weg staan. Hier zijn een paar tips over hoe u betere prestaties kunt bereiken:
a) Automatisch laden
– Met behulp van de Autoloading-functie hoeft u zich alleen te bekommeren om die bestanden die u in uw script moet opnemen. Het is waar dat automatisch laden in het verleden een wat ingewikkelde onderneming was, maar met behulp van hulpmiddelen als Composer en PSR-0 en PSR-4 normen is het configureren van automatisch laden een fluitje van een cent.
b) Afhankelijkheidsinjectie
– Hoewel een veel voorkomend ontwerppatroon in Java, kreeg Dependency Injection ook veel aandacht in de wereld van PHP. Dat komt omdat frameworks als Symphony, Laravel en Zend er veel gebruik van maken. Door Dependency Injection kunnen ontwikkelaars componenten injecteren via de constrictor methode en kan de ontwikkelaar denken in termen van afhankelijkheden. Dit helpt hen om kleine geïsoleerde onderdelen te creëren waar de nadruk slechts op één ding ligt.
Compressie
U kunt de omvang van de gegevens verminderen door gebruik te maken van compressietechnieken die beschikbaar zijn voor de inhoud. REST-diensten hebben een lagere overhead, en zorgen ervoor dat de afbeeldingen in de gegevens de juiste grootte hebben, want moeilijk te laden afbeeldingen kunnen het laden van apps echt beïnvloeden. Zorg er ook voor dat de HTTP-compressie is ingeschakeld wanneer u een webserver gebruikt.
Gebruik de caching-methode om repetitieve taken uit te voeren
Het lijdt geen twijfel dat webapps tegenwoordig erg complex zijn, en ze moeten competent genoeg zijn om een antwoord te genereren voor elk verzoek dat binnenkomt. Een slimme manier om repetitieve taken uit te voeren is door middel van caching. Dit is een veelgebruikte techniek die overal te vinden is. Bij webprogrammering zijn er verschillende niveaus van caching die u kunt gebruiken, zoals de Byte Code Cache, Application cache, HTTP cache en Proxy cache. Dit kan een te grote reis door de inhoudsinfrastructuur en het mobiele netwerk voorkomen.
Netwerk voor de levering van inhoud (CDN)
Verminder de netwerklatentie, pre-fetching van inhoud, optimalisering van de netwerkroutering en meer via CDN’s of Content Delivery Networks. Deze kunnen uw aanvraag aanzienlijk versnellen. Enkele van de meest gebruikte CDN’s zijn Akamai, Edgecast, Limelight, Amazon CloudFront en zelfs telecommunicatiebedrijven als AT&T en Level3.
Als de backend een prestatie zapper is
Als u vindt dat de backend server veel prestatietijd in beslag neemt, configureer de softwarestructuur dan zodanig dat overdraagbaarheid, vervangbaarheid, veranderbaarheid en schaalbaarheid de prestaties van de app niet beïnvloeden. U zult waarschijnlijk een architectuurbeoordeling moeten uitvoeren om te bepalen welk deel van de app snelheid uitstraalt. Als u hiervoor een dienst van derden kiest, zorg er dan voor dat u hen alle juiste vragen stelt voordat u hen inhuurt.
Lui laden van activa
On-demand of lazy loading assets kunnen de prestaties van uw web app verbeteren. Dit geldt echter vooral voor de beelden. Het lui laden van afbeeldingen kan resulteren in een snellere laadtijd van uw pagina,
de belasting van de server verminderen en het geheugengebruik in de browser verminderen. Lazy loading kan gebeuren via relevante plugins of extensies. Hier is een plugin die zorgt voor het lui laden van afbeeldingen voor React – react-lazy-load.
Gebruik array-ids bij gebruik van DOM-manipulatiebibliotheken
Het gebruik van array-ids zou een grote hulp zijn bij het verbeteren van de prestaties van dynamische sites als u React, Angular, Ember of een andere DOM-manipulatiebibliotheek gebruikt. Array-ids geven DOM-manipulatie-engines aan wanneer een bepaald knooppunt kan worden gekoppeld aan een bepaald element in de array. Zonder deze functie vernietigen bibliotheken de bestaande knooppunten en maken ze nieuwe aan, waardoor de prestaties afnemen.
“Volg deze tips, richt je gewoon op het schrijven van de juiste codes voor je project, en je kunt een geweldig niveau van prestaties en schaalbaarheid voor je app bereiken.”
Flickr.com / Bjorn Gruenwald