Backend: cos'è, a cosa serve e come si costruisce?

19 Dec 2019 | M.A.D.R.

Backend: cosa serve e come si costruisce.

Sin dagli albori dello sviluppo web qualsiasi progetto si vedeva suddiviso in due porzioni: lato server e lato client.

Il primo rappresentava l’insieme delle attività dell’applicazione che rimaneva in ascolto sul server, quella che riceveva le richieste delle pagine e gestiva il database.

La seconda era costituita da tutto ciò che il server, in risposta ad una richiesta, scaricava nel browser: HTML e fogli di stile CSS nonché codice Javascript.

Molto spesso la stessa persona o lo stesso gruppo si occupavano di ambo le parti. Non di rado un programmatore PHP sapeva creare e gestire database MySQL e predisporre pagine web con tanto di codice Javascript, magari arricchito da una libreria produttiva come jQuery. Questo tanto per citare uno degli stack di sviluppo più comuni.

Tutto ciò poteva essere considerato sufficiente fino ad alcuni anni fa, quando la programmazione in Rete consisteva per lo più nella creazione pagine web. Sia il lato client sia quello server però si sono molto diversificati da allora, tanto da richiedere delle figure distinte altamente specializzate: da un lato sviluppatori esperti di framework Javascript come Angular.js e React, dall’altro programmatori qualificati in tecnologie server. Molti fattori hanno inciso su questa rivoluzione, tuttora in corso:

  • erogazione di servizi in Cloud;
  • nascita e diffusione di database NoSQL;
  • diffusione di applicazioni mobile;
  • applicazione di modalità di autenticazione basate su Social Network;
  • connessioni in numero costantemente crescente e sempre più veloci.

Si è necessariamente iniziato a vedere il lato server non solo come una sorta di “erogatore di pagine web” ma come un’applicazione indipendente, di notevoli dimensioni, in grado di svolgere mansioni variegate e di accettare dialoghi con client di ogni tipo: web app (pagine web cui la programmazione lato client conferisce molta intelligenza), app mobile, applicazioni desktop, dispositivi elettronici.

Tutto questo fondamentale ruolo passa ormai sotto il nome di backend e gli sviluppatori specializzati nella loro gestione sono figure sempre più ricercate dalle aziende.

Cosa fa nello specifico un backend?

Ecco alcuni aspetti basilari:

  • innanzitutto i backend sono applicazioni. Permettono di svolgere elaborazioni, esportare dati in molti formati, interpretare file di ogni genere, interagire con database e molto altro. Per poter lavorare come sviluppatore backend è indispensabile saper programmare;
  • gestiscono database. Tutti i dati che un backend gestisce sono inseriti all’interno di database;
  • affinchè un backend possa essere utilizzato dai suoi client deve offrire delle interfacce tramite cui essere contattato. Il modo più comune è offrire API di tipo REST;

Come si costruisce un backend?

In primis, un backend può essere costruito in proprio. Ci si basa su un’applicazione che fa da server, pensiamo ad un Apache Web Server, piuttosto che a nginx o a Node.js per il mondo Javascript, e su quello creiamo la nostra applicazione.

Dovremo affrontare un po’ tutto da soli sia per quanto riguarda la produzione delle API da esporre, sia l’interazione con il database e via dicendo. Otteniamo così un prodotto perfetto per i nostri scopi, su misura al nostro business e allocato sul server che preferiamo.

Il problema è che il costo in ore uomo non sarà sempre irrisorio ed in caso di backend piuttosto grandi l’impegno in termini di sviluppo e manutenzione potrebbe non essere così limitato.

Inoltre c’è sempre la gestione dei server sia da un punto di vista hardware sia software, dovendo decidere se posizionarli in locali propri o affittare spazi in web farm.

Un servizio in Cloud particolarmente utile per la realizzazione di un backend è Firebase. Tra le varie piattaforme lo prendiamo come esempio in quanto offre molti vantaggi:

  • è un ambiente in continua espansione in quanto proprietà di Google;
  • offre una moltitudine di servizi non solo rivolti allo sviluppatore.;
  • offre librerie software per l’integrazione con app mobile Android e iOS, web app in Javascript e applicazioni Unity;
  • ha piani tariffari piuttosto accessibili e soprattutto un piano gratuito per studiare e sperimentare con limiti davvero molto generosi.

Senza dubbio, i backend su Cloud stanno conquistando sempre più spazio rispetto a quelli “fatti in casa”, i punti di forza sono notevoli ed i costi vantaggiosi. Un aspetto molto importante è che tutte queste piattaforme possono essere curate con programmi scritti nei linguaggi più comuni infatti tutte permettono di caricare codice Java, Python, Javascript, PHP e altro ancora.

... quindi?

In definitiva, quello di sviluppatore backend è un percorso di formazione interessante soprattutto perché variegato.

Soluzioni complete per ogni esigenza