Úvod
Digitálna transformácia každý rok zasahuje do čoraz viac oblastí života a biznisu. Ak chce byť biznis konkurencieschopný, bežné informačné weby už nestačia; potrebné sú mobilné a webové aplikácie, ktoré nielen poskytnú informácie používateľom, ale aj im umožnia vykonávať rôzne funkcie: prijímať alebo objednávať tovar a služby, poskytovať nástroje.

Napríklad, moderným bankám už nestačí mať iba web s informáciami; potrebujú online nástroje pre svojich klientov, osobný účet, kde môže používateľ spravovať účty, investície, pôžičky. Dokonca aj malým firmám, na zvýšenie konverzie, sú potrebné pohodlné nástroje, ako napríklad možnosť objednania si lekárskeho vyšetrenia alebo návštevy kaderníka, rezervovanie miesta v reštaurácii alebo detskej herni na oslavu narodenín.
Majitelia potrebujú včas dostávať informácie v pohodlnom formáte ohľadom stavu svojej firmy, napríklad zber štatistických údajov a analytiky rôznych výrobných oddelení, alebo produktivity oddelení. Často každý z oddelení zbiera tieto údaje po svojom a dokonca môžu používať rôzne nástroje, pričom majiteľ musí tráviť veľa osobného času, aby sa s tým všetkým oboznámil, čo môže nepriamo alebo priamo ovplyvniť efektivitu firmy a nakoniec aj zisk. Digitálna transformácia a vývoj webovej alebo mobilnej aplikácie tu taktiež môžu pomôcť.
Technológie sa neustále vyvíjajú, a to, čo sa používalo pred niekoľkými rokmi, môže dnes byť už neaktuálne, alebo to, čo nebolo možné urobiť pred niekoľkými rokmi, sa stalo realitou. Existuje množstvo moderných nástrojov, ktoré pomáhajú rýchlejšie a kvalitnejšie vytvárať webové a mobilné aplikácie. Na základe osobných pozorovaní a skúseností chcem zdieľať svoje názory o tom, aké technológie a nástroje budú v blízkej budúcnosti žiadané a prečo by sa na ne malo pri vytváraní moderných webových aplikácií zamerať.
Single page application (jednostránkové aplikácie)
Poďme si najprv vyjasniť terminológiu. Single Page Application (SPA) je webová aplikácia, ktorej komponenty sú načítané jednorazovo na jednej stránke a obsah sa načítava podľa potreby. Pri prechode medzi sekciami aplikácie sa stránka úplne neprezeraňuje, ale len sa načítajú a zobrazia potrebné údaje.
Jednostránkové aplikácie výrazne získavajú na rýchlosti a pohodlí používania v porovnaní s klasickými webovými aplikáciami. Pomocou SPA je možné dosiahnuť efekt fungovania webovej stránky ako desktopovej aplikácie bez prezeraní a podstatných oneskorení.
Ešte pred pár rokmi prakticky neboli jednostránkové aplikácie schopné optimalizácie pre vyhľadávače a používali sa prevažne na vytváranie osobných účtov a administračných panelov, dnes je už oveľa jednoduchšie vytvoriť jednostránkovú aplikáciu s plnou podporou SEO. Použitím jednostránkových aplikácií so serverovým renderovaním sa tento problém úplne vytratil. Inými slovami, ide o rovnakú jednostránkovú aplikáciu, ale pri prvom požiadavku server nevytvára len dáta, ale vytvára hotovú HTML stránku pripravenú na zobrazenie a vyhľadávače dostávajú hotové stránky so všetkými meta-informáciami a sémantickým značkovaním.
S rozvojom nástrojov na vytváranie klientských webových aplikácií bude počet vývojov a prechod na jednot stránkové aplikácie v tomto a nasledujúcich rokoch len rásť. Ak máte starú aplikáciu, ktorá je zastaraná a pracuje pomaly, navyše s kompletným prezeraním stránky pri prechode medzi sekciami, tento rok môžete bez obáv prejsť na rýchlu jednostránkovú aplikáciu – teraz je dobrý čas, technológie to už umožňujú vykonať pomerne rýchlo a kvalitne.
Mať modernú a rýchlu webovú stránku je veľmi dobré, ale musím vám úprimne povedať: nie všetky aplikácie sa dajú ľahko previesť na jednostránkové, a prechod môže byť finančne náročný! Preto je potrebné pochopiť, komu a prečo je tento prechod potrebný.
Aby som vám pomohol sa zorientovať, v nasledujúcej tabuľke uvádzam niekoľko príkladov, kedy je vývoj alebo prechod na SPA vhodný a odôvodnený, a kedy nie.
ZA
Ak chcete vytvoriť modernú, rýchlu aplikáciu a chcete, aby sa používala nielen webová verzia, ale aj mobilná alebo dokonca desktopová, a všetky procesy a výpočty prebiehali na vzdialenom alebo cloudovom serveri. A aby mali všetci klienti rovnaké rozhranie na interakciu a nebolo by potrebné zasahovať do serverového kódu pri pridávaní nového klienta.
Napríklad: sociálne siete, agregátory, SaaS platformy (softvér ako cloudová služba), trhoviská
Ak máte obchod alebo webovú službu, viete, že je pomalá a ľudia odchádzajú, chcete ju urýchliť, chápete hodnotu klientov a ste ochotní zaplatiť za upgrade od milióna rubľov.
Máte mobilnú aplikáciu, ktorá používa API webu, a web je pritom pomalý a pri prechode medzi stránkami dochádza k úplným preťaženiam obsahu.
PROTI
Ak vaša cieľová skupina nepoužíva moderné prehliadače a zariadenia.
Napríklad: špecifické firemné sféry, ako je vývoj vnútorných systémov pre banky, zdravotnícke zariadenia a vzdelávanie.
Hlavné aktivity vykonávate offline a nie ste pripravení poskytovať akékoľvek služby online a potrebujete len prilákať klientov.
Ak máte existujúci internetový obchod alebo webovú službu, ktorá už dobre predáva, nevidíte odliv klientov ani sťažnosti.
Ak máte funkčnú aplikáciu, ktorú nemožno prispôsobiť pre SPA a musíte ju jednoducho prepísať od nuly a použiť iné technológie, a nie ste ochotní na to minúť niekoľko miliónov.
Napríklad: Existuje krabicový web alebo nejaký vlastnoručne napísaný starý, monolitický kód.
Progresívne webové aplikácie
Progresívne webové aplikácie (PWA) sú produktom spoločnej evolúcie natívnej aplikácie a webovej stránky. V podstate ide o webovú aplikáciu, ktorá vyzerá a správa sa ako skutočná natívna aplikácia, môže prijímať push notifikácie, fungovať v offline režime atď. Pri tom používateľ nemusí sťahovať aplikáciu z AppStore alebo Google Play, stačí si ju len uložiť na pracovnú plochu.
Ako technológia alebo prístup k vývoju PWA sa vyvíja od roku 2015 a v poslednej dobe získava obrovskú popularitu v oblasti e-commerce.
Niekoľko skutočných príkladov zo života:
- Minulý rok hotel Best Western River North po spustení novej webovej stránky so podporou PWA dokázal zvýšiť svoje príjmy o 300%;
- Arabský Avito OpenSooq.com po vytvorení podpory PWA na svojej stránke dokázal zvýšiť čas strávený na stránke o 25% a počet klientov o 260%;
- Známa zoznamka Tinder dokázala znížiť čas načítania z 11,91 s na 4,69 s vyvinutím PWA, navyše aplikácia zaberá o 90% menej miesta ako jej natívny Android ekvivalent.
O tom, že stojí za to venovať pozornosť tejto technológii hovorí aj to, že jeden z najväčších nástrojov na tvorbu e-commerce projektov Magento v roku 2018 spustil predbežnú vývojársku verziu PWA Studio. Platforma umožňuje „z krabice“ vytvárať frontendy na báze React pre svoje e-commerce riešenia so podporou PWA.
Rada pre tých, ktorí už majú internetový projekt alebo len nápad na nový servis so zameraním na mobilné zariadenia: nespěchajte s písaním plnohodnotnej natívnej aplikácie, najprv sa pozrite na technológiu PWA. Možno to bude najlepšie riešenie z hľadiska ceny a kvality pre váš produkt.
Trochu z praxe. Na vytvorenie jednoduchého natívneho mobilného spravodajského aplikácie pri predpoklade, že už existuje funkčný REST server, je potrebné približne 200-300 človekohodín na každú platformu. Priemerne sa cena na trhu za hodinu vývoja pohybuje od 1500 do 2000 rubľov/hodina, aplikácia môže stáť okolo 1 milión rubľov. Ak by sa vyvíjalo webové aplikácie s plnou podporou PWA: push upozorneniami, offline režimom a inými výhodami, vývoj by trval 200-300 človekohodín, ale produkt bude okamžite dostupný na všetkých platformách. To znamená úsporu približne 2-krát, nehovoriac o tom, že nebude potrebné platiť poplatky za umiestnenie v obchodoch s aplikáciami.
Serverless
Toto je ďalší moderný prístup k vývoju. Kvôli názvu si mnohí myslia, že ideálne naozaj bezserverovú vývoj, že písanie back-end kódu nie je potrebné, a každý front-end vývojár dokáže vytvoriť plnohodnotné webové aplikácie. Ale to nie je pravda!
Pri vytváraní serverless aplikácie stále potrebujete server a databázu. Hlavným rozdielom v tomto prístupe je, že back-end kód je prezentovaný vo forme cloudových funkcií (iný názov pre serverless je FaaS, funkcie ako služba) a umožňuje aplikácii rýchlo a jednoducho sa škálovať. Pri vývoji takejto aplikácie sa vývojár môže zamerať na obchodné úlohy a nemusí sa zaoberať škálovaním a nastavením infraštruktúry, čo následne urýchľuje vývoj aplikácie a znižuje jej náklady. Navyše, serverless prístup môže pomôcť ušetriť na prenájme serverov, pretože využíva presne toľko zdrojov, koľko je potrebné na vykonanie úlohy, a ak nie je záťaž, serverový čas sa vôbec nepoužíva a neplatí sa.
Napríklad, veľká americká mediálna spoločnosť Bustle dokázala znížiť náklady na hosting viac ako 60 % prechodom na serverless. A spoločnosť Coca-Cola, pri vývoji automatizovaného systému predaja nápojov cez automaty, dokázala znížiť náklady na hosting z 13 000 $ na 4 500 $ ročne vďaka prechodu na serverless.
Posledné dva roky sa kvôli novosti a svojim obmedzeniam serverless väčšinou používal pre malé projekty, startupy a MVP, ale dnes, vďaka evolúcii softvéru, univerzálnosti a sile kontajnerizácie serverov, sa objavujú nástroje, ktoré umožňujú odstrániť obmedzenia, zjednodušiť a urýchliť vývoj cloudových aplikácií.
To znamená, že podnikové obchodné scenáre, v ktorých sa predtým cloudová modernizácia považovala za nemožnú (napríklad pre periférne zariadenia, prenášané údaje alebo aplikácie so zachovaním stavu), sú teraz realitou. Dobré nástroje s veľkým potenciálom sú kNative a serverless enterprise.
Ale aj tak, serverless nie je strieborná guľka pre vývoj webových aplikácií. Tak ako každá iná technológia má svoje výhody a nevýhody, a treba s porozumením vyberať tento nástroj, a „nekliesniť klince mikroskopom“, len preto, že je technologickejší.
Aby sme vám pomohli sa zorientovať, tu je niekoľko príkladov, kedy by ste mali uvažovať o serverless pri vývoji novej alebo zlepšovaní existujúcej webovej služby:
- Keď je záťaž na serveri periodická a platíte za nevyužité kapacity. Napríklad mali sme klienta so sieťou kávovarov, ktorý potreboval spracovávať požiadavky a zbierať štatistiky len niekoľko stoviek alebo tisícok krát za deň, zatiaľ čo v noci počet požiadaviek klesol na niekoľko desiatok. V tomto prípade je oveľa efektívnejšie platiť len za skutočné využitie zdrojov, preto sme navrhli a realizovali riešenie založené na Serverless;
- Ak neplánujete podrobne sa zaoberať technickými detailmi infraštruktúry a preplácať za nastavenie a podporu serverov a vyrovnávačov zaťaženia. Napríklad pri vývoji marketplace presne neviete, aká bude návštevnosť, alebo naopak — plánujete vysokú návštevnosť a aby vaša aplikácia určite zvládla zaťaženie, Serverless je vynikajúca voľba.
- Ak je potrebné vykonávať nejaké prúdové udalosti v práci hlavnej aplikácie, zapisovať vedľajšie údaje do tabuliek, vykonávať nejaké výpočty. Napríklad zbierať analytické údaje o správaní používateľa, spracovať ich určitým spôsobom a uložiť do databázy;
- Ak je potrebné zjednodušiť, uniformizovať alebo urýchliť aktuálnu prácu aplikácie. Napríklad vytvoriť služby na zlepšenie výkonu pri práci s obrazmi alebo videom, keď používateľ nahráva video do cloudu, a transcoding vykonáva samostatná funkcia, pričom hlavný server naďalej funguje v bežnom režime.
Ak je potrebné spracovávať udalosti zo strany externých služieb. Napríklad spracovávať odpovede od platobných systémov alebo presmerovať používateľské údaje do CRM na urýchlenie spracovania požiadaviek potenciálnych zákazníkov.
Ak máte veľkú aplikáciu a niektoré časti aplikácie sa môžu realizovať optimálnejšie použitím jazyka, ktorý sa líši od hlavného. Napríklad, máte projekt v Java a potrebujete pridať novú funkciu, ale nemáte voľné ruky, alebo implementácia v tomto jazyku môže trvať dlhšie a už existuje riešenie v inom jazyku, Serverless vám môže pomôcť aj v tomto.
Toto nie je ani zďaleka úplný zoznam nástrojov a technológií, ktoré si zaslúžia pozornosť, len som sa podelil o to, čo sami používame každý deň v práci a presne vieme, ako môžu pomôcť biznisu.
Zdroj: habr.com
