Praktiska rokasgrāmata par stabilas JavaScript veiktspējas infrastruktūras izveidi, kas aptver metriku, rīkus un ieviešanas stratēģijas, lai uzlabotu tīmekļa lietotņu veiktspēju.
JavaScript Veiktspējas Infrastruktūra: Ieviešanas Ietvars
Mūsdienu konkurētspējīgajā digitālajā vidē vietņu un tīmekļa lietotņu veiktspēja ir vissvarīgākā. Lēni ielādes laiki, saraustītas animācijas un nereaģējošas saskarnes var novest pie neapmierinātiem lietotājiem, samazinātas iesaistes un, galu galā, zaudētiem ieņēmumiem. Labi izstrādāta JavaScript veiktspējas infrastruktūra ir būtiska, lai identificētu, diagnosticētu un novērstu veiktspējas problēmas, nodrošinot vienmērīgu un patīkamu lietotāja pieredzi. Šī rokasgrāmata sniedz visaptverošu ietvaru šādas infrastruktūras izveidei, aptverot galvenos rādītājus, būtiskākos rīkus un praktiskas ieviešanas stratēģijas.
Kādēļ Ieguldīt JavaScript Veiktspējas Infrastruktūrā?
Pirms iedziļināmies detaļās, sapratīsim, kādi ir ieguvumi, ieguldot stabilā veiktspējas infrastruktūrā:
- Uzlabota Lietotāja Pieredze (UX): Ātrāki ielādes laiki un plūdenākas mijiedarbības tieši pārvēršas labākā lietotāja pieredzē, kas noved pie lielākas lietotāju apmierinātības un noturēšanas. Piemēram, Google pētījumā konstatēts, ka 53% mobilo vietņu apmeklējumu tiek pamesti, ja lapas ielāde aizņem vairāk nekā 3 sekundes.
- Palielināti Konversiju Rādītāji: Ātra un atsaucīga vietne mudina lietotājus veikt vēlamās darbības, piemēram, veikt pirkumu, aizpildīt veidlapu vai pierakstīties jaunumu saņemšanai. Amazon slaveni piedēvēja 1% ieņēmumu pieaugumu katrām 100 milisekundēm, par kurām uzlabojās lapas ielādes laiks.
- Labāka Meklētājprogrammu Optimizācija (SEO): Meklētājprogrammas, piemēram, Google, dod priekšroku vietnēm ar labu veiktspēju, atalgojot tās ar augstākām pozīcijām meklēšanas rezultātos. Core Web Vitals, kas mēra ielādes ātrumu, interaktivitāti un vizuālo stabilitāti, tagad ir nozīmīgs ranžēšanas faktors.
- Samazinātas Infrastruktūras Izmaksas: Optimizēts kods un efektīva resursu izmantošana var samazināt servera slodzi, joslas platuma patēriņu un kopējās infrastruktūras izmaksas.
- Ātrāks Laiks līdz Tirgum: Labi izveidota veiktspējas testēšanas un uzraudzības sistēma ļauj izstrādātājiem ātri identificēt un novērst veiktspējas regresijas, paātrinot izstrādes ciklu un samazinot laiku līdz jaunu funkciju ieviešanai tirgū.
- Uz Datiem Balstīta Optimizācija: Ar visaptverošiem veiktspējas datiem komandas var pieņemt pamatotus lēmumus par to, kuras lietojumprogrammas jomas optimizēt, nodrošinot, ka viņu pūles tiek koncentrētas uz tām jomām, kurām būs vislielākā ietekme.
Galvenie Veiktspējas Rādītāji, Kuriem Sekot
Jebkuras veiktspējas infrastruktūras pamats ir spēja precīzi izmērīt un sekot līdzi galvenajiem veiktspējas rādītājiem. Šeit ir daži būtiski rādītāji, kas jāņem vērā:
Frontend Metrika
- First Contentful Paint (FCP): Mēra laiku, kas nepieciešams, lai ekrānā tiktu parādīts pirmais satura elements (teksts, attēls utt.). Labs FCP rādītājs ir zem 1,8 sekundēm.
- Largest Contentful Paint (LCP): Mēra laiku, kas nepieciešams, lai ekrānā tiktu parādīts lielākais satura elements (piemēram, galvenais attēls). Labs LCP rādītājs ir zem 2,5 sekundēm.
- First Input Delay (FID): Mēra laiku, kas nepieciešams pārlūkprogrammai, lai reaģētu uz pirmo lietotāja mijiedarbību (piemēram, noklikšķinot uz pogas vai pieskaroties saitei). Labs FID rādītājs ir zem 100 milisekundēm.
- Cumulative Layout Shift (CLS): Mēra lapas vizuālo stabilitāti. Tas kvantitatīvi nosaka negaidītu izkārtojuma nobīžu daudzumu, kas notiek lapas ielādes procesā. Labs CLS rādītājs ir zem 0,1.
- Time to Interactive (TTI): Mēra laiku, kas nepieciešams, lai lapa kļūtu pilnībā interaktīva, kas nozīmē, ka lietotājs var droši mijiedarboties ar visiem lapas elementiem.
- Total Blocking Time (TBT): Mēra kopējo laiku, kurā galvenais pavediens ir bloķēts lapas ielādes procesā, neļaujot lietotājam mijiedarboties.
- Lapas Ielādes Laiks: Kopējais laiks, kas nepieciešams, lai lapa pilnībā ielādētos un tiktu attēlota.
- Resursu Ielādes Laiki: Laiks, kas nepieciešams atsevišķu resursu, piemēram, attēlu, skriptu un stila lapu, ielādei.
- JavaScript Izpildes Laiks: Laiks, kas nepieciešams JavaScript koda izpildei, ieskaitot koda parsēšanu, kompilēšanu un palaišanu.
- Atmiņas Patēriņš: Atmiņas apjoms, ko izmanto JavaScript kods.
- Kadri Sekundē (FPS): Mēra animāciju un pāreju plūdenumu. Lai nodrošinātu vienmērīgu lietotāja pieredzi, parasti ir vēlams sasniegt 60 FPS.
Backend Metrika
- Atbildes Laiks: Laiks, kas serverim nepieciešams, lai atbildētu uz pieprasījumu.
- Caurlaidspēja: Pieprasījumu skaits, ko serveris var apstrādāt sekundē.
- Kļūdu Līmenis: Pieprasījumu procentuālais daudzums, kas beidzas ar kļūdu.
- CPU Noslodze: CPU resursu procentuālais daudzums, ko izmanto serveris.
- Atmiņas Patēriņš: Atmiņas apjoms, ko izmanto serveris.
- Datu Bāzes Vaicājumu Laiks: Laiks, kas nepieciešams datu bāzes vaicājumu izpildei.
Būtiskākie Rīki Veiktspējas Monitorēšanai un Optimizācijai
Ir pieejami dažādi rīki, kas palīdz uzraudzīt un optimizēt JavaScript veiktspēju. Šeit ir dažas no populārākajām un efektīvākajām iespējām:
Pārlūkprogrammas Izstrādātāju Rīki
Mūsdienu pārlūkprogrammas nodrošina jaudīgus izstrādātāju rīkus, kurus var izmantot, lai profilētu JavaScript kodu, analizētu tīkla pieprasījumus un identificētu veiktspējas problēmas. Šiem rīkiem parasti var piekļūt, nospiežot F12 (vai Cmd+Opt+I macOS). Galvenās funkcijas ietver:
- Cilne Performance: Ļauj ierakstīt un analizēt jūsu lietojumprogrammas veiktspēju, ieskaitot CPU noslodzi, atmiņas piešķiršanu un renderēšanas laikus.
- Cilne Network: Sniedz detalizētu informāciju par tīkla pieprasījumiem, ieskaitot ielādes laikus, galvenes un atbildes ķermeņus.
- Cilne Console: Parāda JavaScript kļūdas un brīdinājumus, kā arī ļauj izpildīt JavaScript kodu un pārbaudīt mainīgos.
- Cilne Memory: Ļauj izsekot atmiņas lietojumam un identificēt atmiņas noplūdes.
- Lighthouse (Chrome DevTools): Automatizēts rīks, kas pārbauda tīmekļa lapu veiktspēju, pieejamību, SEO un labās prakses. Tas sniedz praktiskus ieteikumus lapas veiktspējas uzlabošanai.
Reālo Lietotāju Monitorēšanas (RUM) Rīki
RUM rīki apkopo veiktspējas datus no reāliem lietotājiem reālās pasaules apstākļos, sniedzot vērtīgu ieskatu faktiskajā lietotāja pieredzē. Piemēri ietver:
- New Relic: Visaptveroša monitoringa platforma, kas nodrošina detalizētus veiktspējas datus gan frontend, gan backend lietojumprogrammām.
- Datadog: Vēl viena populāra monitoringa platforma, kas piedāvā līdzīgas funkcijas kā New Relic, kā arī integrācijas ar plašu citu rīku un pakalpojumu klāstu.
- Sentry: Galvenokārt pazīstams ar kļūdu izsekošanu, Sentry nodrošina arī veiktspējas monitoringa iespējas, ļaujot korelēt kļūdas ar veiktspējas problēmām.
- Raygun: Lietotājam draudzīga monitoringa platforma, kas koncentrējas uz praktisku ieskatu sniegšanu veiktspējas problēmās.
- Google Analytics: Lai gan galvenokārt tiek izmantots vietņu analīzei, Google Analytics sniedz arī dažus pamata veiktspējas rādītājus, piemēram, lapas ielādes laiku un atteikuma rādītāju. Tomēr detalizētākai veiktspējas uzraudzībai ieteicams izmantot specializētu RUM rīku.
Sintētiskās Monitorēšanas Rīki
Sintētiskās monitorēšanas rīki simulē lietotāju mijiedarbību, lai proaktīvi identificētu veiktspējas problēmas, pirms tās ietekmē reālus lietotājus. Šos rīkus var konfigurēt, lai regulāri palaistu testus no dažādām vietām visā pasaulē. Piemēri ietver:
- WebPageTest: Bezmaksas un atvērtā koda rīks, kas ļauj pārbaudīt tīmekļa lapas veiktspēju no dažādām vietām un pārlūkprogrammām.
- Pingdom: Vietņu uzraudzības pakalpojums, kas nodrošina darbības laika uzraudzību, veiktspējas uzraudzību un reālo lietotāju uzraudzību.
- GTmetrix: Populārs rīks vietnes veiktspējas analīzei un ieteikumu sniegšanai uzlabojumiem.
- Lighthouse CI: Integrē Lighthouse auditus jūsu CI/CD cauruļvadā, lai automātiski izsekotu un novērstu veiktspējas regresijas.
Profilēšanas Rīki
Profilēšanas rīki sniedz detalizētu informāciju par JavaScript koda izpildi, ļaujot identificēt veiktspējas problēmas un optimizēt kodu ātrākai izpildei. Piemēri ietver:
- Chrome DevTools Profiler: Iebūvēts profilētājs Chrome DevTools, kas ļauj ierakstīt un analizēt JavaScript koda veiktspēju.
- Node.js Profiler: Node.js nodrošina iebūvētu profilētāju, ko var izmantot servera puses JavaScript koda profilēšanai.
- V8 Profiler: V8 JavaScript dzinējs nodrošina savu profilētāju, ko var izmantot, lai iegūtu detalizētāku informāciju par JavaScript koda izpildi.
Komplektēšanas un Minifikācijas Rīki
Šie rīki optimizē JavaScript kodu, apvienojot vairākus failus vienā un noņemot nevajadzīgās rakstzīmes (piemēram, atstarpes, komentārus), lai samazinātu faila izmēru. Piemēri ietver:
- Webpack: Populārs moduļu komplektētājs, ko var izmantot, lai komplektētu JavaScript, CSS un citus resursus.
- Parcel: Nulles konfigurācijas komplektētājs, kas ir viegli lietojams un nodrošina ātrus būvēšanas laikus.
- Rollup: Moduļu komplektētājs, kas ir īpaši piemērots JavaScript bibliotēku un ietvaru izveidei.
- esbuild: Ārkārtīgi ātrs JavaScript komplektētājs un minifikators, kas rakstīts Go valodā.
- Terser: JavaScript parsētājs, pārveidotājs un kompresors.
Koda Analīzes Rīki
Šie rīki analizē JavaScript kodu, lai identificētu potenciālās veiktspējas problēmas un ieviestu kodēšanas standartus. Piemēri ietver:
- ESLint: Populārs JavaScript linteris, ko var izmantot, lai ieviestu kodēšanas standartus un identificētu potenciālās kļūdas.
- JSHint: Vēl viens populārs JavaScript linteris, kas nodrošina līdzīgu funkcionalitāti kā ESLint.
- SonarQube: Platforma nepārtrauktai koda kvalitātes pārbaudei.
Ieviešanas Ietvars: Soli pa Solim Rokasgrāmata
Stabilas JavaScript veiktspējas infrastruktūras izveide ir iteratīvs process, kas ietver rūpīgu plānošanu, ieviešanu un nepārtrauktu uzraudzību. Šeit ir soli pa solim ietvars, kas palīdzēs jūsu centienos:
1. Definējiet Veiktspējas Mērķus un Uzdevumus
Sāciet, definējot skaidrus un izmērāmus veiktspējas mērķus un uzdevumus. Šiem mērķiem jābūt saskaņotiem ar jūsu vispārējiem biznesa mērķiem un lietotāju cerībām. Piemēram:
- Samazināt lapas ielādes laiku par 20%.
- Uzlabot First Contentful Paint (FCP) līdz mazāk nekā 1,8 sekundēm.
- Samazināt First Input Delay (FID) līdz mazāk nekā 100 milisekundēm.
- Palielināt vietnes konversiju rādītājus par 5%.
- Samazināt kļūdu rādītājus par 10%.
2. Izvēlieties Pareizos Rīkus
Izvēlieties rīkus, kas vislabāk atbilst jūsu vajadzībām un budžetam. Izvēloties rīkus, ņemiet vērā šādus faktorus:
- Funkcijas: Vai rīks nodrošina funkcijas, kas nepieciešamas veiktspējas uzraudzībai un optimizācijai?
- Lietošanas Vienkāršība: Vai rīks ir viegli lietojams un konfigurējams?
- Integrācija: Vai rīks integrējas ar jūsu esošo izstrādes un izvietošanas darbplūsmu?
- Izmaksas: Kādas ir rīka izmaksas, un vai tās atbilst jūsu budžetam?
- Mērogojamība: Vai rīks var mērogoties, lai apmierinātu jūsu augošās vajadzības?
Labs sākumpunkts ir izmantot pārlūkprogrammas izstrādātāju rīkus sākotnējai analīzei un pēc tam papildināt ar RUM un sintētiskās monitorēšanas rīkiem, lai iegūtu visaptverošāku skatu.
3. Ieviesiet Veiktspējas Monitoringu
Ieviesiet veiktspējas monitoringu, izmantojot izvēlētos rīkus. Tas ietver:
- Lietojumprogrammas instrumentēšana: Koda pievienošana lietojumprogrammai, lai apkopotu veiktspējas datus. Tas var ietvert RUM rīku izmantošanu vai manuālu koda pievienošanu galveno rādītāju izsekošanai.
- Monitoringa rīku konfigurēšana: Monitoringa rīku iestatīšana, lai apkopotu nepieciešamos datus.
- Brīdinājumu iestatīšana: Brīdinājumu konfigurēšana, lai paziņotu jums, kad rodas veiktspējas problēmas. Piemēram, varat iestatīt brīdinājumus, lai paziņotu, kad lapas ielādes laiks pārsniedz noteiktu slieksni vai kad kļūdu rādītāji ievērojami palielinās.
4. Analizējiet Veiktspējas Datus
Regulāri analizējiet apkopotos veiktspējas datus, lai identificētu veiktspējas problēmas un uzlabojumu jomas. Tas ietver:
- Lēni ielādējošu lapu identificēšana: Identificējiet lapas, kuru ielāde aizņem ilgāku laiku, nekā paredzēts.
- Lēni ielādējošu resursu identificēšana: Identificējiet resursus (piemēram, attēlus, skriptus, stila lapas), kuru ielāde aizņem ilgāku laiku, nekā paredzēts.
- JavaScript veiktspējas problēmu identificēšana: Identificējiet JavaScript kodu, kas rada veiktspējas problēmas.
- Servera puses veiktspējas problēmu identificēšana: Identificējiet servera puses kodu vai datu bāzes vaicājumus, kas rada veiktspējas problēmas.
Izmantojiet pārlūkprogrammas izstrādātāju rīkus un profilēšanas rīkus, lai detalizēti izpētītu konkrētas veiktspējas problēmas un identificētu to cēloni.
5. Optimizējiet Savu Kodu un Infrastruktūru
Optimizējiet savu kodu un infrastruktūru, lai novērstu identificētās veiktspējas problēmas. Tas var ietvert:
- Attēlu optimizēšana: Attēlu saspiešana, atbilstošu attēlu formātu izmantošana un adaptīvu attēlu lietošana.
- JavaScript un CSS minifikācija: Nevajadzīgu rakstzīmju noņemšana no JavaScript un CSS failiem, lai samazinātu faila izmēru.
- JavaScript failu komplektēšana: Vairāku JavaScript failu apvienošana vienā failā, lai samazinātu HTTP pieprasījumu skaitu.
- Koda sadalīšana (Code Splitting): Tikai nepieciešamā JavaScript koda ielāde katrai lapai vai lietojumprogrammas sadaļai.
- Satura Piegādes Tīkla (CDN) izmantošana: Statisko resursu (piemēram, attēlu, skriptu, stila lapu) izplatīšana pa vairākiem serveriem visā pasaulē, lai uzlabotu ielādes laikus lietotājiem dažādās ģeogrāfiskās atrašanās vietās.
- Kešatmiņas izmantošana (Caching): Statisko resursu kešošana pārlūkprogrammā un serverī, lai samazinātu pieprasījumu skaitu uz serveri.
- Datu bāzes vaicājumu optimizēšana: Datu bāzes vaicājumu optimizēšana, lai uzlabotu vaicājumu veiktspēju.
- Servera aparatūras jaunināšana: Servera aparatūras jaunināšana, lai uzlabotu servera veiktspēju.
- Ātrāka tīmekļa servera izmantošana: Pāreja uz ātrāku tīmekļa serveri, piemēram, Nginx vai Apache.
- Attēlu un citu resursu slinkā ielāde (Lazy loading): Nekritisku resursu ielādes atlikšana līdz brīdim, kad tie ir nepieciešami.
- Neizmantotā JavaScript un CSS noņemšana: Koda daudzuma samazināšana, kas pārlūkprogrammai ir jālejupielādē, jāparsē un jāizpilda.
6. Pārbaudiet un Apstipriniet Savus Labojumus
Pārbaudiet un apstipriniet savus labojumus, lai nodrošinātu, ka tiem ir vēlamais efekts un tie neievieš jaunas veiktspējas problēmas. Tas ietver:
- Veiktspējas testu veikšana: Veiktspējas testu veikšana, lai izmērītu jūsu labojumu ietekmi uz veiktspējas rādītājiem.
- Sintētiskās monitorēšanas izmantošana: Sintētiskās monitorēšanas rīku izmantošana, lai proaktīvi identificētu veiktspējas problēmas, pirms tās ietekmē reālus lietotājus.
- Reālo lietotāju datu uzraudzība: Reālo lietotāju datu uzraudzība, lai nodrošinātu, ka jūsu labojumi uzlabo lietotāja pieredzi.
7. Automatizējiet Veiktspējas Testēšanu un Monitoringu
Automatizējiet veiktspējas testēšanu un monitoringu, lai nodrošinātu, ka veiktspēja laika gaitā saglabājas optimāla. Tas ietver:
- Veiktspējas testēšanas integrēšana jūsu CI/CD cauruļvadā: Automātiska veiktspējas testu veikšana kā daļa no jūsu būvēšanas un izvietošanas procesa.
- Automatizētu brīdinājumu iestatīšana: Automatizētu brīdinājumu konfigurēšana, lai paziņotu jums, kad rodas veiktspējas problēmas.
- Regulāru veiktspējas pārskatu plānošana: Regulāra veiktspējas datu pārskatīšana, lai identificētu tendences un uzlabojumu jomas.
8. Atkārtojiet un Pilnveidojiet
Veiktspējas optimizācija ir nepārtraukts process. Nepārtraukti atkārtojiet un pilnveidojiet savu veiktspējas infrastruktūru, pamatojoties uz apkopotajiem datiem un saņemto atgriezenisko saiti. Regulāri pārskatiet savus veiktspējas mērķus un uzdevumus un pēc nepieciešamības pielāgojiet savu stratēģiju.
Padziļinātas Tehnikas JavaScript Veiktspējas Optimizācijai
Papildus fundamentālajām optimizācijas stratēģijām, vairākas padziļinātas tehnikas var vēl vairāk uzlabot JavaScript veiktspēju:
- Web Workers: Pārnesiet skaitļošanas ietilpīgus uzdevumus uz fona pavedieniem, lai novērstu galvenā pavediena bloķēšanu un uzlabotu lietotāja saskarnes atsaucību. Piemēram, attēlu apstrādi, datu analīzi vai sarežģītus aprēķinus var veikt Web Worker.
- Service Workers: Iespējojiet bezsaistes funkcionalitāti, kešošanu un pašpiegādes paziņojumus (push notifications). Service Workers var pārtvert tīkla pieprasījumus un pasniegt kešotu saturu, uzlabojot lapas ielādes laikus un nodrošinot uzticamāku lietotāja pieredzi, īpaši vietās ar sliktu tīkla savienojumu.
- WebAssembly (Wasm): Kompilējiet kodu, kas rakstīts citās valodās (piemēram, C++, Rust), uz WebAssembly — bināru instrukciju formātu, ko var izpildīt pārlūkprogrammā ar gandrīz dabīgu veiktspēju. Tas ir īpaši noderīgi skaitļošanas ietilpīgiem uzdevumiem, piemēram, spēlēm, video rediģēšanai vai zinātniskām simulācijām.
- Virtualizācija (piem., React `react-window`, `react-virtualized`): Efektīvi renderējiet lielus sarakstus vai tabulas, renderējot tikai redzamos vienumus ekrānā. Šī tehnika ievērojami uzlabo veiktspēju, strādājot ar lielām datu kopām.
- Debouncing un Throttling: Ierobežojiet ātrumu, ar kādu funkcijas tiek izpildītas, reaģējot uz notikumiem, piemēram, ritināšanu, izmēru maiņu vai taustiņu nospiešanu. Debouncing aizkavē funkcijas izpildi līdz noteiktam neaktivitātes periodam, savukārt throttling ierobežo funkcijas izpildi līdz noteiktam skaitam reižu periodā.
- Memoizācija: Kešojiet dārgu funkciju izsaukumu rezultātus un atkārtoti izmantojiet tos, kad atkal tiek nodrošināti tie paši ievaddati. Tas var ievērojami uzlabot veiktspēju funkcijām, kuras bieži tiek izsauktas ar tiem pašiem argumentiem.
- Tree Shaking: Novērsiet neizmantoto kodu no JavaScript komplektiem. Mūsdienu komplektētāji, piemēram, Webpack, Parcel un Rollup, var automātiski noņemt nedzīvo kodu, samazinot komplekta izmēru un uzlabojot ielādes laikus.
- Prefetching un Preloading: Sniedziet pārlūkprogrammai norādi ienest resursus, kas būs nepieciešami nākotnē. Prefetching ienes resursus, kas, visticamāk, būs nepieciešami nākamajās lapās, savukārt preloading ienes resursus, kas ir nepieciešami pašreizējā lapā, bet tiek atklāti vēlāk renderēšanas procesā.
Noslēgums
Stabilas JavaScript veiktspējas infrastruktūras izveide ir kritisks ieguldījums jebkurai organizācijai, kas paļaujas uz tīmekļa lietojumprogrammām, lai sniegtu vērtību saviem lietotājiem. Rūpīgi izvēloties pareizos rīkus, ieviešot efektīvas monitoringa prakses un nepārtraukti optimizējot kodu un infrastruktūru, jūs varat nodrošināt ātru, atsaucīgu un patīkamu lietotāja pieredzi, kas veicina iesaisti, konversijas un, galu galā, biznesa panākumus. Atcerieties, ka veiktspējas optimizācija nav vienreizējs uzdevums, bet gan nepārtraukts process, kas prasa pastāvīgu uzmanību un pilnveidošanu. Pieņemot uz datiem balstītu pieeju un pastāvīgi meklējot jaunus veidus, kā uzlabot veiktspēju, jūs varat palikt priekšā konkurentiem un nodrošināt patiesi izcilu lietotāja pieredzi.
Šī visaptverošā rokasgrāmata sniedz ietvaru JavaScript veiktspējas infrastruktūras izveidei un uzturēšanai. Ievērojot šos soļus un pielāgojot tos savām specifiskajām vajadzībām, jūs varat izveidot augstas veiktspējas tīmekļa lietojumprogrammu, kas atbilst mūsdienu lietotāju prasībām.