Uvod
Digitalna transformacija svake godine pokriva sve više različitih područja života i poslovanja. Ako želi ostati konkurentan, poslovanju više nisu dovoljni obični informacijski web-stranice, potrebne su mobilne i web-aplikacije koje ne samo da pružaju informacije korisnicima, već i omogućuju obavljanje različitih funkcija: naručivanje ili kupovina proizvoda i usluga, pružanje alata.

Na primjer, modernim bankama više nije dovoljno imati web-stranicu s informacijama, potrebni su online alati za njihove klijente, osobni račun gdje korisnici mogu upravljati svojim računima, ulaganjima, kreditima. Čak i malim poduzećima, za povećanje konverzije, potrebni su prikladni alati, poput zakazivanja pregleda kod liječnika ili frizera, rezervacije stola u restoranu ili dječjoj igraonici za proslavu rođendana.
Vlasnicima je također potrebno pravovremeno dobivati informacije u prikladnom formatu o stanju svog poduzeća, poput prikupljanja statističkih podataka i analitike različitih proizvodnih odjela. Često svaki odjel na svoj način prikuplja te podatke, i čak mogu koristiti različite alate, a vlasnik mora trošiti puno svog osobnog vremena kako bi shvatio sve to, što može neizravno ili izravno utjecati na učinkovitost poduzeća i konačno na dobit. Tu također pomaže digitalna transformacija i razvoj web- ili mobilne aplikacije.
Tehnologije ne miruju i stalno se razvijaju, a ono što se koristilo prije nekoliko godina danas može biti neaktualno, ili ono što se nije moglo napraviti prije nekoliko godina postalo je stvarnost. Postoji mnogo više suvremenih alata koji pomažu u bržem i kvalitetnijem razvoju web- i mobilnih aplikacija. Osim na vlastitim zapažanjima i iskustvu, želim podijeliti svoje viđenje koje će od tehnologija i alata biti tražene u bliskoj budućnosti i zašto ih treba imati na umu prilikom izrade moderne web-aplikacije.
Single page application (jednostranične aplikacije)
Pogledajmo malo definicije. Single Page Application (SPA) je web aplikacija čiji se komponente učitavaju jednom na jednoj stranici, a sadržaj se učitava po potrebi. Kada se prelazi između sekcija aplikacije, stranica se ne učitava potpuno, nego se samo učitavaju i prikazuju potrebni podaci.
Jednostrane aplikacije imaju značajnu prednost u brzini rada i jednostavnosti korištenja u odnosu na klasične web aplikacije. Pomoću SPA-a može se postići efekt rada web stranice kao aplikacije na radnoj površini, bez ponovnog učitavanja stranica i značajnih kašnjenja.
Ako su nekoliko godina unazad jednostrane aplikacije praktički bile nepodržane u smislu optimizacije pretraživača i korištene su pretežno za kreiranje korisničkih panela i administracijskih sučelja, danas je kreiranje jednostrane aplikacije s potpunom podrškom za optimizaciju pretraživača (SEO) postalo znatno jednostavnije. Korištenjem jednostranih aplikacija s poslužiteljskim renderiranjem, ovaj problem je potpuno nestao. Drugim riječima, to je ista jednostrana aplikacija, ali prilikom prvog zahtjeva, poslužitelj generira ne samo podatke, nego stvara HTML stranicu spremnu za prikaz, a pretraživači dobivaju gotove stranice sa svim meta-informacijama i semantičkom oznakom.
S razvojem alata za izradu klijentskih web aplikacija, razvoj i prelazak na jednostrane aplikacije u ovoj i narednim godinama će samo rasti. Ako imate staru aplikaciju koja je moralno zastarjela i radi sporo, a uz to ima potpuno ponovo učitavanje stranica prilikom prelaska između sekcija, ove godine možete slobodno nadograditi na brzu jednostranu aplikaciju – sada je pravo vrijeme, tehnologije to već omogućuju da se učini prilično brzo i kvalitetno.
Imati modernu i brzu web stranicu je vrlo dobro, ali želim vas iskreno obavijestiti: nisu sve aplikacije lako prevesti u jednostrane, a prijelaz može koštati. Stoga je važno razumjeti tko i zašto treba takav prijelaz.
Kako bih vam pomogao, u tabeli ispod ću navesti nekoliko primjera kada je razvoj ili prijelaz na SPA prikladan i opravdan, a kada nije.
ZA
Ako želite stvoriti moderno, brzo aplikaciju i želite da se koristi ne samo web verzija, već i mobilna ili čak desktop verzija, dok se svi procesi i kalkulacije odvijaju na udaljenom ili oblačnom serveru. A još i tako da svi klijenti imaju jedinstveno sučelje za interakciju i da ne bude potrebno unositi svaku izmjenu u serverski kod prilikom dodavanja novog klijenta.
Na primjer: društvena mreža, agregatori, SaaS platforme (software kao usluga), tržišta.
Ako imate trgovinu ili web uslugu, znate da je spora i ljudi odlaze, želite je učiniti bržom, razumijete vrijednost klijenata i spremni ste platiti za nadogradnju od milijun kuna.
Imate mobilnu aplikaciju koja koristi API web stranice, a web stranica je pritom spora i sa kompletnim ponovnim učitavanjima sadržaja prilikom prelaska između stranica.
PROTIV
Ako vaša ciljana publika ne koristi moderne preglednike i uređaje.
Na primjer: specifična korporativna područja, kao što su razvoj internih sustava za banke, medicinske institucije i obrazovanje.
Glavnu djelatnost obavljate offline i niste spremni pružiti bilo kakve usluge online, a trebate samo privući klijente.
Ako imate internet trgovinu ili web uslugu koja već dobro prodaje, ne vidite odliv klijenata i pritužbi.
Ako imate radnu aplikaciju koja se ne može prilagoditi za SPA i jednostavno trebate sve prepisati ispočetka i koristiti druge tehnologije, a niste spremni potrošiti nekoliko milijuna.
Na primjer: postoji kutijski web site ili neki samostalno napisan drevni, monolitni kod.
Progresivne web aplikacije
Progresivne web aplikacije (PWA) su proizvod zajedničke evolucije nativne aplikacije i web stranice. U suštini, to je web aplikacija koja izgleda i ponaša se kao prava nativna aplikacija, može primati push obavijesti, raditi u offline modu itd. Pri tome korisniku nije potrebno preuzimati aplikaciju iz AppStore-a ili Google Play-a, dovoljno je samo spremiti je na radnu površinu.
Kako tehnologija ili pristup razvoju PWA se razvija od 2015. godine, a u posljednje vrijeme također stječe ogromnu popularnost u e-commerce sektoru.
Nekoliko stvarnih primjera iz života:
- Prošle godine, hotel Best Western River North je putem novog PWA podržanog web sajta povećao prihode za 300%;
- Arapski Avito OpenSooq.com je nakon implementacije PWA podrške na svom sajtu povećao vreme zadržavanja posetitelja za 25% i broj leadova za 260%;
- Poznati servis za upoznavanje Tinder uspeo je smanjiti vreme učitavanja sa 11.91s na 4.69s razvijajući PWA, a aplikacija zauzima 90% manje prostora od svog nativnog Android ekvivalenta.
Da obratite pažnju na ovu tehnologiju govori i to što je jedan od najvećih motora za kreiranje e-commerce projekata, Magento, 2018. godine pokrenuo ranu razvojnu verziju PWA Studija. Platforma omogućava kreiranje frontenda na bazi React za svoja e-commerce rešenja sa PWA podrškom "iz kutije".
Savet za one koji već imaju internet projekat ili samo ideju o novom servisu koji podržava mobilne uređaje: ne žurite sa pisanjem punokrvne nativne aplikacije, već prvo razmislite o PWA tehnologiji. Ovo bi moglo biti najbolje rešenje u smislu odnosa cene i kvaliteta za vaš proizvod.
Malo iz prakse. Da biste kreirali jednostavnu nativnu mobilnu aplikaciju za vesti, pod pretpostavkom da već postoji gotov REST server, potrebno je otprilike 200-300 radnih sati za svaku platformu. S obzirom na prosek cene od 1500-2000 RSD / sat, aplikacija može koštati oko 1 milion dinara. Ako se razvija web aplikacija sa potpunom PWA podrškom: push obaveštenjima, offline režimom i ostalim prednostima, razvoj će trajati 200-300 radnih sati, ali će proizvod odmah biti dostupan na svim platformama. To znači uštedu od otprilike 2 puta, ne spominjući da nećete morati plaćati takse za postavljanje u prodavnicama aplikacija.
Bez servera
Ovo je još jedan savremeni pristup razvoju. Zbog imena mnogi misle da je to zaista bezserverni razvoj, da pisanje back-end koda nije potrebno, a da svaki front-end developer može napraviti punokrvnu web aplikaciju. No, to nije tako!
Kada se stvara Serverless aplikacija, server i dalje ostaje potreban, kao i baze podataka. Glavna razlika ovog pristupa je u tome što je back-end kod predstavljen u obliku oblaka funkcija (drugo ime za serverless je FaaS, funkcije kao servis) i omogućuje brzo i lako skaliranje aplikacije. Prilikom izrade takve aplikacije, developer se može fokusirati na poslovne zadatke, a ne misliti o skaliranju i postavljanju infrastrukture, što kasnije ubrzava razvoj aplikacije i smanjuje njene troškove. Štoviše, Serverless pristup pomaže uštedjeti na najmu poslužitelja, jer koristi upravo onoliko resursa koliko je potrebno za izvršenje zadatka, a ako nema opterećenja, tada se serverno vrijeme uopće ne koristi i ne naplaćuje.
Na primjer, velika američka medijska kompanija Bustle uspjela je smanjiti troškove na hosting više od 60% prelaskom na Serverless. A kompanija Coca-Cola, prilikom izrade automatiziranog sistema prodaje napitaka putem automata, uspjela je smanjiti troškove hostinga sa 13.000 dolara na 4.500 dolara godišnje prelaskom na Serverless.
Posljednjih nekoliko godina, zbog noviteta i svojih ograničenja, Serverless se uglavnom koristio za manje projekte, startupe i MVP-ove, ali danas, zahvaljujući evoluciji softvera, univerzalnosti i snazi kontejnerizacije servera, pojavljuju se alati koji omogućuju uklanjanje ograničenja, pojednostavljenje i ubrzanje razvoja oblaka aplikacija.
To znači da su korporativni poslovni scenariji u kojima se ranije smatralo da je oblačna modernizacija nemoguća (na primjer, za perifernu opremu, prijenos podataka ili aplikacije s očuvanjem stanja), sada stvarnost. Dobri alati s velikim potencijalom su kNative i Serverless enterprise.
No unatoč svemu, Serverless nije srebrna metak za razvoj web aplikacija. Poput svake druge tehnologije, ima svoje prednosti i nedostatke, i treba s razumijevanjem odabrati ovaj alat, a ne 'zakucavati ekser mikroskopom' samo zato što je tehnološki napredniji.
Kako bismo vam pomogli da se snađete, evo nekoliko primjera kada treba razmisliti o Serverless prilikom razvoja nove ili unapređenja trenutne web usluge:
- Kada je opterećenje servera periodične prirode i plaćate za neiskorištene resurse. Na primjer, imali smo klijenta s mrežom aparata za kavu koji je trebao obrađivati zahtjeve i prikupljati statistiku samo nekoliko stotina ili tisuća puta dnevno, dok je noću broj zahtjeva padao na nekoliko desetaka. U tom slučaju puno je efikasnije plaćati samo za stvarnu upotrebu resursa, zbog čega smo predložili i implementirali rješenje na Serverless;
- Ako ne planirate uroniti u tehničke detalje infrastrukture i preplatiti za postavljanje i podršku servera i balansiranja opterećenja. Na primjer, prilikom razvoja marketplacea točno ne znate kakva će biti posjećenost, ili obrnuto — planirate veliku posjećenost i želite da vaša aplikacija sigurno izdrži opterećenje, Serverless je odličan izbor.
- Ako je potrebno izvršavati određene tokove događaja u radu glavne aplikacije, zapisivati sporedne podatke u tablice, provoditi neka izračunavanja. Na primjer, prikupljati analitičke podatke o radnjama korisnika, obraditi ih na određeni način i pohraniti u bazu podataka;
- Ako treba pojednostaviti, unificirati ili ubrzati trenutni rad aplikacije. Na primjer, kreirati servise za poboljšanje performansi koji se bave slikama ili videom, kada korisnik učita video u oblak, a transkodiranjem se bavi posebna funkcija, dok glavna server nastavlja raditi u normalnom režimu.
Ako je potrebno obraditi događaje s vanjskih servisa. Na primjer, obrađivati odgovore od platnih sustava, ili preusmjeravati korisničke podatke u CRM za ubrzanje obrade zahtjeva potencijalnih klijenata.
Ako imate veliku aplikaciju i neki dijelovi aplikacije mogu biti implementirani optimiziranije, koristeći jezik koji se razlikuje od glavnog. Na primjer, imate projekt u Javi i trebate dodati novu funkcionalnost, a slobodnih ruku nema, ili bi implementacija na tom jeziku mogla potrajati dulje a već postoji rješenje na drugom jeziku, Serverless vam može pomoći i u tome.
Ovo nije sveobuhvatan popis alata i tehnologija koje zaslužuju pažnju, samo sam podijelio ono što sami koristimo svaki dan u radu i točno znamo kako oni mogu pomoći poslovanju.
Izvor: habr.com
