Hur du bygger blixtsnabba applikationer
Utvecklarens mål är att öka appens prestanda och förbättra användarupplevelsen. Ofta står tiden emot utvecklarna när intressenterna flåsar dem i nacken, konkurrenterna hotar med att ta fram bättre appar än vad de kan producera och användarna försöker få dem att byta till konkurrenternas appar. Projektledningsgrupperna är därför alltid på jakt efter metoder som kan hjälpa dem att bygga appar snabbt – otroligt snabbt. Och ja, det räcker inte med att bara vara snabb. De måste koncentrera sig på att göra apparna motståndskraftiga, med låg latenstid och med bra renderingstider.
Att välja rätt teknisk stack
En teknisk stapel är en uppsättning programmeringsspråk, verktyg, teknik och programvaruprodukter som utvecklare använder för att skapa en funktionell webbapplikation. Detta kan kategoriseras som server side (back end) stack, client side (front end) stack och middle ware. På grund av det stora antalet gem-bibliotek är RoR det mest använda ramverket för snabb apputveckling. Om du till exempel precis har börjat med din verksamhet kan du välja ett språk/ramverk/CMS-verktyg som låter dig skapa en prototyp. Ju kortare inlärningstid, desto bättre för dig.
Undvik för tidig optimering
Donald Knuth sa en gång: ”För tidig optimering är roten till allt ont”.
Utvecklare ägnar mycket tid åt att tänka på de icke-kritiska delarna av programvaran i stället för att utveckla de kritiska delarna av koden. De lägger ingen vikt vid de kritiska delarna av koden och arbetar inte heller med den kod som behöver optimeras.
Det kan bero på bristande erfarenhet. För att förhindra att liknande saker händer ditt team, se till att teamet skriver den första versionen av koden utan att oroa sig för dess prestanda. Senare kan teamet med hjälp av en profilerare kontrollera var flaskhalsarna finns.
På så sätt kan de kontrollera de områden som verkligen behöver uppmärksamhet och inte bry sig om det som inte behöver det.
På PHP-området finns det några verktyg som du kan använda för att profilera din kod. De är xdebug, xhprof, Symphony profiler, Tideways, Blackfire.io och The Stopwatch Component.
Gör bara det du behöver göra
Det händer ofta att din kod gör saker som är bortom vad du förväntade dig att den skulle göra. Särskilt när det gäller komplexa bibliotek och ramverk. Ibland kan det hända att du laddar in klasser som du inte tänkte använda eller öppnar en databasanslutning som inte behövs för att generera resultat för en specifik begäran.
Du måste undvika att det händer, eftersom det kan hindra dig från att prestera. Här är några tips om hur du kan förbättra din prestanda:
a) Automatisk laddning
– Med hjälp av funktionen Autoloading behöver du bara bry dig om de filer som du behöver inkludera i ditt skript. Det är sant att autoladdning tidigare var en lite komplicerad uppgift, men med hjälp av verktyg som Composer och PSR-0- och PSR-4-standarderna är det lätt att konfigurera autoladdning.
b) Injektion av beroenden
– Även om det är ett mycket vanligt designmönster i Java har beroendeinjektion fått stor spridning även i PHP-världen. Detta beror på att ramverk som Symphony, Laravel och Zend använder det i stor utsträckning. Med hjälp av Dependency Injection kan utvecklare injicera komponenter genom constrictor-metoden, vilket gör det möjligt för utvecklaren att tänka i termer av beroenden. Detta hjälper dem att skapa små isolerade komponenter där fokus ligger på en enda sak.
Kompression
Du kan minska datastorleken genom att använda de komprimeringstekniker som finns tillgängliga för innehållet. REST-tjänster har lägre omkostnader, och se till att bilderna i data har rätt storlek, eftersom bilder som är svåra att ladda kan påverka laddningen av appar. Se också till att du har HTTP-komprimering aktiverad när du använder en webbserver.
Använd caching-metoden för att utföra repetitiva uppgifter.
Det råder ingen tvekan om att webbapplikationer är mycket komplexa i dag och att de måste vara tillräckligt kompetenta för att generera svar på varje begäran som kommer in. Ett smart sätt att utföra repetitiva uppgifter är genom caching. Detta är en teknik som används ofta och som finns överallt. Vid webbprogrammering finns det olika nivåer av caching som du kan använda, t.ex. bytecodecache, programcache, HTTP-cache och proxy-cache. På så sätt kan man undvika alltför långa resor genom innehållsinfrastruktur och mobilnät.
Nätverk för leverans av innehåll (CDN)
Minskad nätverkslatenstid, förfångst av innehåll, optimering av nätverksdirigering med mera med hjälp av CDN:er eller Content Delivery Networks (nätverk för innehållsleverans). Dessa kan påskynda din ansökan avsevärt. Några av de mest använda CDN:erna är Akamai, Edgecast, Limelight, Amazon CloudFront och till och med telekommunikationsföretag som AT&T och Level3.
Om backend är en prestandasnyltare
Om du känner att backend-servern tar mycket tid i anspråk, konfigurera programstrukturen på ett sådant sätt att portabilitet, förbrukningsbarhet, ändringsbarhet och skalbarhet inte påverkar appens prestanda. Du måste förmodligen göra en arkitekturbedömning för att avgöra vilken del av appen som är snabbast. Om du väljer en tredjepartstjänst för detta, se till att du ställer alla de rätta frågorna innan du anlitar dem.
Trög laddning av tillgångar
Tillgångar som laddas på begäran eller med lathet kan förbättra prestandan i din webbapplikation. Detta gäller dock främst bilderna. Långsam laddning av bilder kan leda till snabbare laddning av din sida,
minska belastningen på servern och minska minnesanvändningen i webbläsaren. Långsam laddning kan göras med hjälp av relevanta plugins eller tillägg. Här är ett insticksprogram som hanterar lat laddning av bilder för React – react-lazy-load.
Använd array-ids när du använder bibliotek för DOM-manipulering
Att använda array-ids kan vara till stor hjälp för att förbättra prestandan på dynamiska webbplatser om du använder React, Angular, Ember eller något annat bibliotek för DOM-manipulering. Array-id anger för DOM-manipuleringsprogrammen när en viss nod kan mappas till ett visst element i arrayen. Utan den här funktionen förstör biblioteken befintliga noder och skapar nya, vilket försämrar prestandan.
”Följ de här tipsen och fokusera på att skriva rätt koder för ditt projekt så kan du uppnå en hög prestanda och skalbarhet för din app.”
Flickr.com / Björn Gruenwald
Om författaren: Reema arbetar som Thought Leader på PHPBabu.