Home / Blog /

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

di Giuseppe Maggi

In questo articolo parliamo di Backend, vediamo cos’è, a cosa serve e come si costruisce. Quali sono i linguaggi e le tecnologie che stanno dietro ad un Backend e come si diventa Backend developer, ma partiamo dall’inizio.

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, ma lo stesso avveniva per altri tipi di tecnologie come Python, Microsoft .NET, Java e molto altro ancora.

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.

VUOI IMPARARE A PROGRAMMARE?

Iscriviti su devACADEMY e SEGUI TUTTI I CORSI che vuoi!
OLTRE 70 CORSI di coding A TUA DISPOSIZIONE con un’unica iscrizione 🙂

SCOPRI I CORSI | ISCRIVITI

Cosa fa nello specifico un backend?

Capire cosa fa esattamente un backend permette di sapere quali sono le competenze necessarie per diventare un professionista del settore. 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 in uno o più linguaggi tra Java, Python, PHP, Javascript su Node.js e saper affrontare la gestione di problemi anche con un pizzico di progettazione visuale UML;
  • gestiscono database. Tutti i dati che un backend gestisce sono inseriti all’interno di database. In molti casi si tratta di database relazionali basati su MySQL, PostgreSQL, SQL Server, etc. ma nell’ultimo decennio si è avuta una grossa affermazione dei cosiddetti NoSQL che garantiscono prestazioni migliori in diversi casi, utilizzo in cluster, modelli di programmazione più vicini alle esigenze degli sviluppatori. Tra i più diffusi in assoluto troviamo MongoDB e Redis;
  • 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, un approccio comodo da applicare e perfettamente utilizzabile con qualsiasi linguaggio di programmazione.

Chi volesse diventare un programmatore di backend dovrebbe approfondire ognuno di questi aspetti. L’approccio migliore è quello di scegliere un linguaggio di programmazione – magari provandone più di uno si può individuare quello di proprio gradimento – e iniziare a sviluppare programmi integrando via via tecniche di interazione con un database e definizione di proprie API 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.

Tutto ciò può essere in parte o totalmente alleviato dall’adesione a servizi in Cloud. Ciò avrà effetto su vari aspetti sia gestionali sia operativi. Innanzitutto Cloud significa avere un potenziamento e un contemporaneo alleggerimento di diversi aspetti. Si può ricorrere a questi servizi per la creazione di macchine virtuali che eliminino il problema della gestione dei server. Lo si può utilizzare per avere in maniera molto elastica database con o senza API per l’interazione. In pratica, si può “astrarre” nel Cloud tutto ciò di cui non vogliamo preoccuparci in prima persona. Il Cloud comporta comunque costi da sostenere. Servizi di nuova generazione si basano sulla regola generale del pagare quanto si consuma. Hanno tariffe commisurate ai servizi che si utilizza e possono essere adattate, più o meno dinamicamente, alle circostanze di traffico e di intensità di utilizzo.

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. Permette di caricare pagine web e usare i suoi database NoSQL, di gestire notifiche push (inviate dal server ai client di propria iniziativa) ma anche campagne di marketing, statistiche e molto altro ancora;
  • 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.

Conclusioni

In definitiva, quello di sviluppatore backend è un percorso di formazione interessante soprattutto perché variegato. Si può scegliere il linguaggio che si preferisce, applicare le tecnologie di elezione, integrare il tutto con strumenti che già si conosce. Soprattutto orientarsi a questo settore permette di acquisire nozioni di carattere generale che saranno sempre utili in altri contesti. Comprendere come funziona il protocollo HTTP, il modello REST o un database sono esperienze indispensabili per essere uno sviluppatore sia di backend sia di app mobile Android pertanto un percorso simile amplifica in maniera solida il proprio bagaglio culturale.

Vuoi provare? Perché non iniziare con uno dei migliori linguaggi per backend come Java, Python, PHP o magari con Node.js? I nostri corsi ti aspettano.

» VUOI SAPERNE DI PIU’? SCOPRI I NOSTRI CORSI ONLINE PER IMPARARE A PROGRAMMARE «