Kako da optimizujete svoje Laravel aplikacije
Ukoliko kao developer koristite Laravel framework, onda je dobro da znate neke od načina da optimizujete svoj kod. Zato ćemo u ovom tekstu objasniti kako da optimizujete svoje Laravel aplikacije.
Imajte u vidu da možda neke od navedenih optimizacija neće značajno poboljšati rad neke vaše aplikacije, ali svakako vredi da pokušate. Najveći broj predloženih rešenja će dati rezultate, pa svakako vredi da pokušate sa svakim pojedinačnim rešenjem.
Alati za monitoring performansi
Laravel alati za monitoring performansi pomažu da unapredite performanse svoje aplikacije, korišćenjem metrika i izveštaja o greškama. Možete koristiti tu statistiku da biste predvideli ponašanje vaših korisnika. Postoji nekoliko dostupnih alata na tržištu za ovu namenu.
Scout APM pomaže da lako dobijete uvid u različite metrike, sve preko jednog dashboard-a. Na primer možete da vidite kada korisnici napuste aplikacije, gde u aplikaciji provedu najviše vremena, možete da identifikujete loše API pozive, i sl.
Front end optimizacija
Laravel Mix se koristi za miksovanje različitih stylesheet-ova u jedan bundle paket, praveći tako samo jedan fajl. Podrazumevano je prisutan u svim Laravel aplikacijama. Načelno se koristi za kompilovanje različitih CSS fajlova u jedan fajl, tako da aplikacija nema potrebe da poziva različite HTTP API-je.
Na taj način aplikacija može biti nešto brža. Primer koda za miksovanje dva CSS fajla je prikazan ispod:
mix.styles([
'public/css/vendor/normalize.css',
'public/css/styles.css'
], 'public/css/all.css');
Imajte u vidu da spajanje dva fajla u jedan zapravo povećava veličinu tog fajla, pa to poništava efekat koji dobijamo njihovim spajanjem. Da bismo rešili taj problem, potrebno je da optimizujete miksovani fajl i smanjite veličinu za produkcione aplikacije. To pomaže da se aplikacija na kraju brže učitava i da ima brži odziv.
Keširanje
U računarskoj oblasti keširanje predstavlja korišćenje informacije koje je već proizvedena u nekoj prethodnoj iteraciji / ciklusu. U bilo kojoj web aplikaciji keširanje igra važnu ulogu, jer povećava njenu brzinu / brzinu sajta.
Recimo, ako vaša aplikacija često koristi neki API poziv, mnogo je bolje samo ponovo koristiti isti taj poziv, nego čekati svaki put da se on poziva svaki put ispočetka. Keširanje smanjuje rsponse time API poziva i broj upita u bazu.
Laravel obezbeđuje veoma korisnu komandu za keširanje, koja pomaže da se ubrzaju performanse:
php artisan config:cache
Možete koristiti ovu komandu za keširanje config fajla. Slično, možete keširati route u Laravel-u, koristeći sledeću komandu:
php artisan route:cache
Korišćenje poslednje verzije
Korišćenje poslednje verzije PHP-a je neophodno za brzinu vaše Laravel aplikacije. Poslednja verzija ima uvek neke važne izmene koje se odnose i na Laravel. Zato uvek treba da se potrudite da instalirate poslednju verziju i PHP-a i Laravel-a.
Minifikacija
Kada pišemo HTML, CSS i JavaScript fajlove, poželjno je da ih kompresujemo kada završimo da bi se brže učitavali. Ovo umanjivanje se naziva minifikacija jer minimizira različite komponente vaše aplikacije. Minifikovani fajlovi, iz kojih su izbačeni razmaci, komentari i suvišne informacije pregledači jednako dobro razumeju. Možete optimizovati različite elemente kao što je kod, konfiguracija na strani servera i korišćenje ostalih elemenata sajta.
HTML minifikacija
HTML minifikacija je proces pravljenja koda jednostavnijim i deljenjem tog koda u manje celine radi bržeg učitavanja sajta, minimizirajući API pozivanja na front-end-u. Na taj način se može drastično smanjiti vreme učitavanja i postići bolje iskustvo na strani korisnika.
CSS minifikacija
CSS igra važnu ulogu u vremenu odziva svakog web sajta. Više CSS koda znači više stilova, što ujedno znači i više vremena za učitavanja sajta. Minifikacija CSS-a takođe podrazumeva uklanjanje irelevantnih stilova, loš stil koda, uklanjanje praznog prostora… itd.
Ipak, kod minifikacija CSS treba da budete obazrivi jer se svi browser-i ne ponašaju isto kada je u pitanju CSS. Iz tog razloga predlažemo da dobro istestirate vašu aplikaciju paralelno sa procesom minifikacije.
JavaScript minifikacija
Minifikacija JavaScript-a se uglavnom radi kako bi JS skripta radila brže. Kod JS minifikacije uklanjamo nekorišćeni kod kao npr API pozive. Ako minifikaciju uradite kako treba, to će značajno unaprediti performase vaše aplikacije. Takođe, ona pomaže da se podaci sa web sajta šalju brže ka serveru.
Optimizujte svoju Laravel aplikaciju pomoću Scout APM-a
Scout APM je moderna aplikacija za monitoring aplikacija različitog tipa. Podržava PHP, Ruby, Python, Elixir…itd. Takođe, podržava sve verzije Laravel-a od verzije 5.5 pa na dalje. Ujedno rešava problem N+1 query-a, što je jedan od većih problema u Laravel Eloquent-u.
Instalacija Scout APM-a u vašoj Laravel aplikaciji je prilično jednostavan proces. Potrebno je samo da pokrenete sledeću komandu u vašoj konzoli:
composer require scoutapp/scout-apm-laravel
Nakon pokretanja ove komande instalira se scout-php
Nakon toga sledeći korak je konfigurisanje promenljivih u .env
fajlu. Da biste integrisali Scout u vašu aplikaciju, potrebno je da dodate sledeće ključeve:
# Scout settings
SCOUT_MONITOR=true
SCOUT_KEY="[AVAILABLE IN THE SCOUT UI]"
SCOUT_NAME="A FRIENDLY NAME FOR YOUR APP"
U slučaju da instalirate preko Heroku Addon-a nema potrebe da posebno podesite scout_monitor
i scout_key
, jer se automatski podešavaju.
Treći korak je dodavanje config/scout_apm.php
korišćenjem sledeće komande:
php artisan vendor:publish
--provider=\"Scoutapm\\Laravel\\Providers\\ScoutApmServiceProvider\"
Nakon ovog koraka biće neophodno da očistite i uradite rebuild cache-a, jer u suprotnom može dati neočekivane rezultate. Poslednji korak je da nakon ovih izmena postavite vašu aplikaciju. Rezultatima sa vašeg sajta je potrebno je oko 5 minuta da se pojave u Scout-ovom dashboard-u.
Kao što smo pomenuli, Scout APM će pomoći da vidite svu metriku vezano za vašu Laravel aplikaciju. Tu statistiku možete koristiti da biste poboljšali vaše Laravel aplikacije.
Bez komentara