Tendenze tecnologiche di sviluppo web 2019

Introduzione

Ogni anno la trasformazione digitale interessa ambiti sempre più diversi della vita e del business. Se un'azienda vuole essere competitiva non basta più i comuni siti di informazione, servono applicazioni mobile e web che non solo forniscano informazioni agli utenti, ma permettano loro di svolgere determinate funzioni: ricevere o ordinare beni e servizi, fornire strumenti.

Tendenze tecnologiche di sviluppo web 2019

Ad esempio, per le banche moderne non è più sufficiente avere un sito web con le informazioni; hanno bisogno di strumenti online per i propri clienti, un conto personale dove l'utente può gestire conti, investimenti e prestiti. Anche le piccole imprese hanno bisogno di strumenti convenienti per aumentare le conversioni, come fissare un appuntamento dal medico o dal parrucchiere, oppure prenotare un tavolo in un ristorante o in una sala giochi per bambini per una festa di compleanno.

E i proprietari stessi hanno bisogno di ricevere informazioni tempestive in una forma conveniente sullo stato della loro azienda, ad esempio sulla raccolta di dati statistici e analitici per diversi reparti di produzione o sulla produttività dei reparti. Spesso ogni dipartimento raccoglie questi dati a modo suo e può anche utilizzare strumenti diversi e il proprietario deve dedicare molto tempo personale per comprendere tutto ciò, indirettamente o direttamente, ciò può influire sull'efficienza dell'azienda e, in definitiva, sul profitto. Anche la trasformazione digitale e lo sviluppo di applicazioni web o mobili aiuteranno in questo.

Le tecnologie non si fermano e sono in continua evoluzione, e ciò che veniva utilizzato diversi anni fa potrebbe non essere più rilevante oggi, oppure ciò che non si poteva fare diversi anni fa è già diventato realtà. Esistono strumenti più moderni che ti aiutano a creare applicazioni web e mobili più velocemente e meglio. Sulla base di osservazioni ed esperienze personali, voglio condividere la mia visione di quali tecnologie e strumenti saranno richiesti nel prossimo futuro e perché dovresti prestare loro attenzione quando crei un'applicazione web moderna.

Applicazione a pagina singola

Definiamo un po' la terminologia. L'applicazione a pagina singola (SPA) è un'applicazione Web i cui componenti vengono caricati una volta su una pagina e il contenuto viene caricato secondo necessità. E quando ci si sposta tra le sezioni dell'applicazione, la pagina non si ricarica completamente, ma carica e visualizza solo i dati necessari.

Le applicazioni a pagina singola traggono grandi vantaggi dalle applicazioni Web classiche in termini di velocità e facilità d'uso. Con l'aiuto di SPA, puoi ottenere l'effetto di un sito Web che funziona come un'applicazione su un desktop, senza riavvii e ritardi significativi.

Se qualche anno fa le applicazioni a pagina singola praticamente non supportavano l'ottimizzazione dei motori di ricerca e venivano utilizzate principalmente per creare account personali e pannelli di amministrazione, oggi creare un'applicazione a pagina singola con pieno supporto per l'ottimizzazione dei motori di ricerca (SEO) è diventato molto più semplice. Utilizzando oggi le applicazioni a pagina singola renderizzate dal server, questo problema è completamente scomparso. In altre parole, questa è la stessa applicazione a pagina singola, ma alla prima richiesta il server non genera solo dati, ma crea una pagina HTML pronta per la visualizzazione e i motori di ricerca ricevono pagine già pronte con tutte le meta informazioni e il markup semantico .

Con lo sviluppo di strumenti per la creazione di applicazioni Web lato client, lo sviluppo e la transizione verso applicazioni a pagina singola non potranno che crescere in questo e negli anni successivi. Se hai una vecchia applicazione che è obsoleta e funziona lentamente, e anche con un ricaricamento completo della pagina quando passi da una sezione all'altra, quest'anno puoi tranquillamente passare a un'applicazione veloce di una pagina: ora è il momento giusto, la tecnologia te lo consente già per farlo in modo abbastanza rapido ed efficiente.

Avere un sito web moderno e veloce è molto positivo, ma lascia che te lo dica onestamente: non tutte le applicazioni possono essere facilmente convertite in applicazioni a pagina singola e la transizione può essere costosa! Pertanto, è necessario capire chi ha bisogno di tale transizione e perché.

Per aiutarti a capire, nella tabella seguente fornirò alcuni esempi di quando lo sviluppo o il passaggio a una SPA è opportuno e giustificato e quando non lo è.

ЗА

Se vuoi creare un'applicazione moderna e veloce e vuoi utilizzare non solo la versione web, ma anche la versione mobile o anche desktop, tutti i processi e i calcoli avvengono su un server remoto o cloud. Inoltre, in modo che tutti i client abbiano un'unica interfaccia di interazione e non sia necessario apportare ogni modifica al codice del server quando si aggiunge un nuovo client.

Ad esempio: social network, aggregatori, piattaforme SaaS (software come servizio cloud), mercati

Se hai un negozio o un servizio web, sai che è lento e le persone se ne vanno, vuoi renderlo più veloce, comprendi il valore dei clienti e sei pronto a pagare più di un milione di rubli per un aggiornamento.

Hai un'applicazione mobile che utilizza l'API del sito, ma il sito è lento e i contenuti vengono ricaricati completamente quando ci si sposta tra le pagine

CONTRO

Se il tuo pubblico di destinazione non utilizza browser e dispositivi moderni.

Ad esempio: aree aziendali specifiche, come lo sviluppo di sistemi interni per banche, istituzioni mediche e istruzione.

Conduci le tue attività principali offline e non sei pronto a fornire alcun servizio online, devi solo attirare clienti.

Se disponi di un negozio online o di un servizio web che vende già bene, non vedi deflussi di clienti o reclami

Se hai un'applicazione funzionante che non può essere adattata per SPA e devi solo riscrivere tutto da zero e utilizzare altre tecnologie, e non sei pronto a spendere diversi milioni per questo.

Ad esempio: esiste un sito in scatola o una sorta di codice antico e monolitico scritto in casa.

Applicazioni Web progressive

Le applicazioni Web progressive sono il prodotto dell'evoluzione congiunta di un'applicazione nativa e di un sito web. In sostanza si tratta di un'applicazione web che si presenta e si comporta come una vera e propria applicazione nativa, può ricevere notifiche push, funzionare in modalità offline, ecc. In questo caso, l'utente non deve scaricare l'applicazione dall'AppStore o da Google Play, ma semplicemente salvarla sul desktop.

Come tecnologia o approccio allo sviluppo, PWA è in fase di sviluppo dal 2015 e recentemente ha guadagnato un'enorme popolarità nel campo dell'e-commerce.

Alcuni esempi di vita reale:

  • l'anno scorso, l'hotel Best Western River North è riuscito ad aumentare le entrate del 300% dopo aver lanciato un nuovo sito Web abilitato per PWA;
  • L'arabo Avito OpenSooq.com, dopo aver creato il supporto PWA sul proprio sito web, è riuscito ad aumentare il tempo di visita del sito del 25% e il numero di lead del 260%;
  • il famoso servizio di incontri Tinder è riuscito a ridurre la velocità di caricamento da 11.91s a 4.69s sviluppando una PWA; inoltre l'applicazione pesa il 90% in meno rispetto alla sua controparte nativa Android.

Che valga la pena prestare attenzione a questa tecnologia è dimostrato anche dal fatto che uno dei più grandi motori per la creazione di progetti di e-commerce, Magento, ha lanciato una prima versione di sviluppo di PWA Studio nel 2018. La piattaforma ti consente di creare un frontend basato su React pronto all'uso per le tue soluzioni di e-commerce con supporto PWA.

Consiglio per chi ha già un progetto Internet o semplicemente un'idea per un nuovo servizio con supporto per dispositivi mobili: non abbiate fretta di scrivere un'applicazione nativa a tutti gli effetti, ma guardate prima la tecnologia PWA. Questa potrebbe essere la soluzione con il miglior rapporto qualità-prezzo per il tuo prodotto.

Un po' dalla pratica. Per creare una semplice applicazione nativa di notizie mobile, a condizione che si disponga già di un server REST già pronto, sono necessarie circa 200-300 ore di lavoro per piattaforma. Considerando che il prezzo medio di mercato per un'ora di sviluppo è di 1500-2000 rubli/ora, un'applicazione può costare circa 1 milione di rubli. Se sviluppi un'applicazione web con supporto completo per PWA: notifiche push, modalità offline e altre funzionalità, lo sviluppo richiederà 200-300 ore di lavoro, ma il prodotto sarà immediatamente disponibile su tutte le piattaforme. Cioè, un risparmio di circa 2 volte, per non parlare del fatto che non dovrai pagare commissioni per il posizionamento negli store di applicazioni.

serverless

Questo è un altro approccio moderno allo sviluppo. A causa del nome, molte persone pensano che si tratti di uno sviluppo veramente serverless, che non sia necessario scrivere codice back-end e che qualsiasi sviluppatore front-end possa creare un'applicazione web completa. Ma non è vero!

Quando crei un'applicazione Serverless, hai comunque bisogno di un server e di un database. La differenza principale di questo approccio è che il codice back-end è presentato sotto forma di funzioni cloud (un altro nome per serverless è FaaS, Functions as a Service o Functions-as-a-Service) e consente all'applicazione di scalare rapidamente e facilmente. Quando crea un'applicazione di questo tipo, lo sviluppatore può concentrarsi sui problemi aziendali e non pensare al ridimensionamento e alla configurazione dell'infrastruttura, il che successivamente accelera lo sviluppo dell'applicazione e ne riduce i costi. Inoltre, l'approccio Serverless ti aiuterà a risparmiare sul noleggio del server, poiché utilizza esattamente tutte le risorse necessarie per completare l'attività e, se non c'è carico, il tempo del server non viene utilizzato affatto e non viene pagato.

La grande azienda mediatica americana Bustle, ad esempio, è riuscita a ridurre i costi di hosting di oltre il 60% passando a Serverless. E l’azienda Coca-Cola, sviluppando un sistema automatizzato per la vendita di bevande tramite distributori automatici, è riuscita a ridurre i costi di hosting da 13000 a 4500 dollari all’anno passando a Serverless.

Negli ultimi due anni, a causa della sua novità e dei suoi limiti, Serverless è stato utilizzato principalmente per piccoli progetti, startup e MVP, ma oggi, grazie all'evoluzione del software, alla versatilità e alla potenza della containerizzazione dei server, stanno emergendo strumenti che consentono di rimuovere restrizioni, semplificare e velocizzare lo sviluppo di applicazioni cloud.
Ciò significa che gli scenari aziendali in cui la modernizzazione del cloud era precedentemente considerata impossibile (ad esempio, per dispositivi edge, dati in transito o applicazioni stateful) sono ora una realtà. Buoni strumenti che mostrano molte promesse sono kNative e Serverless Enterprise.

Ma nonostante tutto ciò, Serverless non è la soluzione miracolosa per lo sviluppo di applicazioni web. Come ogni altra tecnologia, ha i suoi vantaggi e svantaggi, ed è necessario scegliere questo strumento con comprensione e "non martellare i chiodi con un microscopio" solo perché è tecnologicamente più avanzato.

Per aiutarti a capirlo, ecco alcuni esempi di quando potresti prendere in considerazione Serverless quando sviluppi un nuovo servizio web o ne migliori uno esistente:

  • Quando il carico sul server è periodico e si paga per la capacità inattiva. Ad esempio, avevamo un cliente con una rete di macchine da caffè ed era necessario elaborare richieste e raccogliere statistiche solo poche centinaia o migliaia di volte al giorno, e di notte il numero di richieste scendeva a diverse decine. In questo caso è molto più efficiente pagare solo per l'effettivo utilizzo delle risorse, per questo abbiamo proposto e realizzato una soluzione su Serverless;
  • Se non hai intenzione di immergerti nei dettagli tecnici dell'infrastruttura e di pagare più del dovuto per la configurazione e la manutenzione di server e un sistema di bilanciamento. Ad esempio, quando sviluppi un mercato, non sai esattamente quale sarà il traffico, o viceversa: stai pianificando molto traffico e affinché la tua applicazione possa sopportare sicuramente il carico, Serverless è una scelta eccellente.
  • Se è necessario eseguire alcuni eventi in streaming nell'applicazione principale, scrivere i dati secondari nelle tabelle ed eseguire alcuni calcoli. Ad esempio, raccogliere dati analitici sulle azioni dell'utente, elaborarli in un certo modo e salvarli in un database;
  • Se hai bisogno di semplificare, unificare o velocizzare il funzionamento attuale dell'applicazione. Ad esempio, crea servizi di miglioramento delle prestazioni per lavorare con immagini o video, quando l'utente carica il video sul cloud e una funzione separata gestisce la transcodifica, mentre il server principale continua a funzionare normalmente.

Se è necessario elaborare eventi da servizi di terze parti. Ad esempio, elabora le risposte dai sistemi di pagamento o reindirizza i dati degli utenti al CRM per accelerare l'elaborazione delle richieste di potenziali clienti
Se hai un'applicazione di grandi dimensioni ed alcune parti dell'applicazione possono essere implementate in modo più ottimale utilizzando un linguaggio diverso da quello principale. Ad esempio, hai un progetto in Java e devi aggiungere nuove funzionalità, ma non hai le mani libere, oppure l'implementazione in una determinata lingua potrebbe richiedere più tempo ed esiste già una soluzione in un'altra lingua, quindi Serverless può aiutarti anche con questo.

Questo non è l'intero elenco di strumenti e tecnologie che meritano attenzione; ho solo condiviso ciò che noi stessi utilizziamo ogni giorno nel nostro lavoro e so esattamente come possono aiutare le aziende.

Fonte: habr.com

Aggiungi un commento