Kuinka rakentaa huikean nopeita sovelluksia

Kuinka rakentaa huikean nopeita sovelluksia


Kehittäjän tavoitteena on lisätä sovelluksen suorituskykyä ja parantaa käyttäjäkokemusta. Usein aika on kehittäjiä vastaan, kun sidosryhmät hengittävät heidän niskaansa, kilpailijat uhkaavat tuoda markkinoille parempia sovelluksia kuin mitä he pystyvät tuottamaan ja käyttäjät vihjailevat vaihtavansa kilpaileviin sovelluksiin. Projektinhallintaryhmät etsivätkin aina menetelmiä, joiden avulla sovelluksia voidaan rakentaa nopeasti – todella nopeasti. Ja kyllä, pelkkä nopeus ei riitä. Heidän on keskityttävä tekemään näistä sovelluksista joustavia, viiveettömiä ja suorituskykyisiä.

Oikean teknologiapaketin valinta

Tekninen pino on joukko ohjelmointikieliä, työkaluja, teknologioita ja ohjelmistotuotteita, joita kehittäjät käyttävät luodakseen toimivan verkkosovelluksen. Tämä voidaan luokitella palvelinpuolen (back end) pinoksi, asiakaspuolen (front end) pinoksi ja väliohjelmistoksi. Suuren helmikirjastojen määrän ansiosta RoR on yleisimmin käytetty kehys nopeaan sovelluskehitykseen. Jos esimerkiksi olet vasta aloittamassa yritystoimintaa, voit valita kielen/kehyksen/CMS-työkalun, jonka avulla voit koota prototyypin. Mitä lyhyemmän oppimisajan työkalut tarjoavat, sitä parempi on sinulle.

Vältä ennenaikaista optimointia

Donald Knuth sanoi kerran: ”Ennenaikainen optimointi on kaiken pahan alku ja juuri”.

Kehittäjät käyttävät paljon aikaa miettimällä ohjelmiston ei-kriittisiä osia sen sijaan, että kehittäisivät koodin kriittisiä osia. Ne eivät kiinnitä huomiota koodin kriittisiin osiin eivätkä käsittele optimoitavaa koodia.

Kokemattomuus voi aiheuttaa sen. Jotta vastaavaa ei tapahtuisi tiimillesi, varmista, että tiimi kirjoittaa koodin ensimmäisen version huolehtimatta sen suorituskyvystä. Myöhemmin tiimi voi profiloijan avulla tarkistaa, missä pullonkaulat sijaitsevat.

Näin he voivat tarkistaa alueet, jotka todella tarvitsevat huomiota, eivätkä välitä siitä, mitä ei tarvitse.

PHP:n alalla on joitakin työkaluja, joilla voit profiloida koodisi. Ne ovat xdebug, xhprof, Symphony profiler, Tideways, Blackfire.io ja The Stopwatch Component.

Tee vain se, mitä sinun on tehtävä

Usein koodisi tekee tiettyjä asioita, jotka eivät vastaa sitä, mitä odotit sen tekevän. Varsinkin kun on kyse monimutkaisten kirjastojen ja kehysten käytöstä. Joskus saatat ladata luokkia, joita et ole suunnitellut käyttäväsi, tai avata tietokantayhteyden, jota ei tarvita tietyn pyynnön tulosten tuottamiseen.

Sinun on vältettävä näitä tapahtumia, koska ne voivat haitata suorituskykyäsi. Seuraavassa on pari vinkkiä siitä, miten voit parantaa suorituskykyä:


a) Automaattinen lataus
– Autoloading-ominaisuuden avulla sinun tarvitsee huolehtia vain niistä tiedostoista, jotka sinun on sisällytettävä skriptiisi. On totta, että automaattinen lataus oli aiemmin hieman monimutkainen tehtävä, mutta Composerin ja PSR-0- ja PSR-4-standardien kaltaisten työkalujen avulla automaattisen latauksen konfigurointi on lastenleikkiä.


b) Riippuvuusinjektio
– Vaikka riippuvuuksien injektointi on hyvin yleinen suunnittelumalli Javassa, se on saanut paljon jalansijaa myös PHP:n maailmassa. Tämä johtuu siitä, että kehykset kuten Symphony, Laravel ja Zend käyttävät sitä laajalti. Dependency Injectionin avulla kehittäjät voivat injektoida komponentteja constrictor-menetelmän avulla, ja se antaa kehittäjille mahdollisuuden ajatella riippuvuuksia. Tämä auttaa heitä luomaan pieniä erillisiä osia, joissa keskitytään vain yhteen asiaan.

Puristus

Voit pienentää datan kokoa käyttämällä sisältöä varten käytettävissä olevia pakkaustekniikoita. REST-palveluissa on vähemmän yleiskustannuksia, ja varmista, että datan sisältämät kuvat on mitoitettu oikein, sillä vaikeasti ladattavat kuvat voivat vaikuttaa sovellusten lataamiseen. Varmista myös, että HTTP-pakkaus on päällä, kun käytät verkkopalvelinta.

Käytä välimuistitietomenetelmää toistuvien tehtävien suorittamiseen.

Ei ole epäilystäkään siitä, että verkkosovellukset ovat nykyään todella monimutkaisia, ja niiden on oltava riittävän päteviä tuottamaan vastauksia kaikkiin saapuviin pyyntöihin. Älykäs tapa tehdä toistuva tehtävä on välimuistitallennus. Tämä on laajalti käytetty tekniikka, jota löytyy kaikkialta. Verkko-ohjelmoinnissa voidaan käyttää eri tasoisia välimuistitietoja, kuten tavukoodin välimuistia, sovelluksen välimuistia, HTTP-välimuistia ja välityspalvelimen välimuistia. Näin voidaan välttää liiallinen matka sisältöinfrastruktuurin ja matkaviestinverkon kautta.

Sisällönjakeluverkko (CDN)

Vähennä verkon viiveaikaa, hae sisältö etukäteen, optimoi verkon reititys ja muuta CDN:ien eli sisällönjakeluverkkojen avulla. Nämä voivat nopeuttaa hakemustasi huomattavasti. Joitakin yleisimmin käytettyjä CDN:iä ovat Akamai, Edgecast, Limelight, Amazon CloudFront ja jopa teleyritykset, kuten AT&T ja Level3.

Jos taustajärjestelmä on suorituskyvyn syöppö.

Jos tuntuu, että taustapalvelin vie paljon suorituskykyaikaa, määritä ohjelmistorakenne siten, että siirrettävyys, käytettävyys, muunneltavuus ja skaalautuvuus eivät vaikuta sovelluksen suorituskykyyn. Sinun on luultavasti tehtävä arkkitehtuurin arviointi määrittääksesi, mikä osa sovelluksesta huokuu nopeutta. Jos valitset tähän kolmannen osapuolen palvelun, varmista, että kysyt heiltä kaikki oikeat kysymykset ennen kuin palkkaat heidät.

Varojen laiska lataaminen

Tarvittaessa ladattavat tai laiskasti latautuvat resurssit voivat parantaa verkkosovelluksesi suorituskykyä. Tämä koskee kuitenkin lähinnä kuvia. Kuvien hidas lataaminen voi nopeuttaa sivusi latausaikaa,
vähentää palvelimen kuormitusta ja selaimen muistin käyttöä. Laiska lataus voidaan tehdä asiaankuuluvien lisäosien tai laajennusten avulla. Tässä on lisäosa, joka käsittelee laiska lataus kuvia React – react-lazy-load.

Käytä array-tunnuksia DOM-käsittelykirjastoja käytettäessä

Array-idien käyttämisestä olisi paljon apua dynaamisten sivustojen suorituskyvyn parantamisessa, jos käytät Reactia, Angularia, Emberiä tai mitä tahansa muuta DOM-käsittelykirjastoa. Array-id:t antavat DOM-käsittelymoottoreille viitteitä siitä, milloin tietty solmu voidaan liittää johonkin tiettyyn elementtiin array:ssä. Ilman tätä ominaisuutta kirjastot tuhoavat olemassa olevia solmuja ja luovat uusia, mikä heikentää suorituskykyä.

”Noudata näitä vinkkejä, keskity vain kirjoittamaan oikeaa koodia projektiisi, ja voit saavuttaa sovelluksellesi erinomaisen suorituskyvyn ja skaalautuvuuden”

  1. 6 nyrkkisääntöä nopeiden web-palvelinsovellusten rakentamiseen
  2. Rakennetaan huikean nopeita Android-sovelluksia

Flickr.com / Bjorn Gruenwald


Kirjoittajasta: Reema työskentelee PHPBabun ajatusjohtajana.

Jätä kommentti