Back end e front end indicano due livelli di un software, in­di­pen­den­ti e che si com­ple­ta­no a vicenda. Pensando a un software come se fosse un’au­to­mo­bi­leil back end comprende telaio, motore, impianto elettrico, freni e altri com­po­nen­ti meccanici. Seguendo questa analogia, il front end sarebbe invece l’abitacolo con volante, cruscotto e le altre funzioni di comando e comfort.

De­fi­ni­zio­ne

Il back end è l’area di un sito web o di un’app che si trova in back­ground e che è protetta dall’accesso da parte degli utenti. La me­mo­riz­za­zio­ne e l’ela­bo­ra­zio­ne dei dati avvengono nel back end.

Che cosa co­sti­tui­sce un back end?

Il termine inglese “back end” significa più o meno ”zona sul retro” o “fon­da­men­to”. In questa zona avvengono tutte quelle attività che si svolgono dietro le quinte.

Per back end si intendono nel lin­guag­gio comune due cose diverse:

  1. Il livello di un software sul quale ha luogo l’ela­bo­ra­zio­ne dei dati.
  2. Un’area di am­mi­ni­stra­zio­ne protetta dall’accesso degli utenti normali.

Un software è pa­ra­go­na­bi­le a una macchina per l’ela­bo­ra­zio­ne dei dati. Qui vengono eseguiti calcoli i cui risultati de­ter­mi­na­no il fun­zio­na­men­to del software. I dati vengono generati e me­mo­riz­za­ti uti­liz­zan­do in par­ti­co­la­re database come MongoDB e MySQL. Il tutto si svolge in back­ground.

A dif­fe­ren­za del front end, che è pensato su misura per un utente umano, un back end è rea­liz­za­to sulla base di requisiti tecnici. L’at­ten­zio­ne è rivolta a ef­fi­cien­za e pre­sta­zio­ni, nonché alla sca­la­bi­li­tà e alla sicurezza.

Seguendo il principio di sviluppo “Se­pa­ra­tion of concerns”, tra­du­ci­bi­le in italiano con “se­pa­ra­zio­ne delle pro­ble­ma­ti­che”, back end e front end vengono rea­liz­za­ti sotto forma di livelli in­di­pen­den­ti. Per garantire la piena fun­zio­na­li­tà di un software, sono necessari sempre entrambi i livelli. Un back end senza front end è come una macchina senza pulsanti.

N.B.

In questo articolo det­ta­glia­to ti spie­ghia­mo la dif­fe­ren­za tra back end e front end.

Chi lavora sul back end?

È possibile iden­ti­fi­ca­re due diversi gruppi di utilizzo che lavorano con il back end:

  1. Am­mi­ni­stra­to­ri, che ge­sti­sco­no un sistema dopo aver eseguito l’accesso al back end.
  2. Svi­lup­pa­to­ri del back end, che si occupano della creazione, della ma­nu­ten­zio­ne e del per­fe­zio­na­men­to dei back end.

Diamo un’occhiata al modo in cui entrambi i gruppi lavorano sul back end.

Come lavorano gli am­mi­ni­stra­to­ri sul back end?

Il lavoro sul back end è facile da spiegare prendendo l’esempio del noto CMS WordPress. At­tra­ver­so il login admin di WordPress si accede al back end del CMS, noto anche come dashboard/bacheca di WordPress. Qui hai a tua di­spo­si­zio­ne un’in­ter­fac­cia dedicata per creare, mo­di­fi­ca­re ed eliminare i contenuti.

Consiglio

Utilizza il servizio di Hosting per WordPress Gestito di IONOS per rendere sicuro e veloce il tuo sito web WordPress.

Oltre a queste classiche ope­ra­zio­ni CRUD, gli am­mi­ni­stra­to­ri di WordPress ge­sti­sco­no nel back end i ruoli utente di WordPress e uti­liz­za­no ad esempio plugin di WordPress per pro­teg­ge­re il sito web e per altre attività am­mi­ni­stra­ti­ve.

N.B.

Anche se è detta “back end”, la dashboard di WordPress è un’in­ter­fac­cia grafica utente. In questo caso, il passaggio tra back end e front end si nota meno.

Come lavorano gli svi­lup­pa­to­ri e le svi­lup­pa­tri­ci sul back end?

A dif­fe­ren­za degli am­mi­ni­stra­to­ri, gli svi­lup­pa­to­ri e le svi­lup­pa­tri­ci del back end non eseguono l’accesso a questa area per svolgere il loro lavoro. Al contrario, operano in un ambiente di sviluppo locale. Qui scrivono il codice sorgente da eseguire sul server o sul container del back end.

Dopo aver eseguito dei test, prin­ci­pal­men­te au­to­ma­tiz­za­ti, si uti­liz­za­no degli strumenti di Con­ti­nuous In­te­gra­tion per caricare il codice come im­ple­men­ta­zio­ne sul server. In al­ter­na­ti­va, si uti­liz­za­no soluzioni tramite plugin: in questo caso vengono svi­lup­pa­ti plugin di WordPress che girano nel back end, ma che possono essere gestiti dagli am­mi­ni­stra­to­ri e dalle am­mi­ni­stra­tri­ci.

A dif­fe­ren­za del front end, che viene eseguito sul client, il back end gira sul server. Di solito, per lo sviluppo e l’ese­cu­zio­ne si utilizza un insieme di tec­no­lo­gie detto “stack web. Alcuni tra gli stack web più noti sono LAMP e MEAN. Ne esistono comunque molti altri.

Uno stack web è composto da un sistema operativo o da un container come ambiente di ese­cu­zio­ne. Al suo interno gira un programma server che riceve e risponde con­ti­nua­men­te alle richieste. A tal fine vengono eseguiti degli script in un lin­guag­gio di pro­gram­ma­zio­ne web che funge da elemento di col­le­ga­men­to fra server e database:

Stack web Ambiente di ese­cu­zio­ne Server Database Lin­guag­gio
LAMP Linux Apache MySQL PHP
MEAN Node.js Express.js MongoDB Angular (Ja­va­Script)

Gli svi­lup­pa­to­ri e le svi­lup­pa­tri­ci del back end uti­liz­za­no spesso i framework web per agevolare il richiamo, l’ela­bo­ra­zio­ne e il sal­va­tag­gio dei dati. Nelle parti seguenti ti pre­sen­tia­mo una pa­no­ra­mi­ca dei prin­ci­pa­li framework back end.

N.B.

Lo sapevi? I pro­gram­ma­to­ri pro­fes­sio­ni­sti che operano nello sviluppo di back end e front end sono detti “full-stack developer”.

Quali sono i prin­ci­pa­li framework back end?

I framework fa­ci­li­ta­no il lavoro nello sviluppo del back end. Grazie al loro utilizzo è possibile evitare di ri­scri­ve­re ogni volta da zero processi ri­cor­ren­ti come l’au­ten­ti­ca­zio­ne degli utenti e il col­le­ga­men­to con un database. Parte in­te­gran­te dei framework back end sono anche il supporto mul­ti­lin­gue e un lin­guag­gio per i template per la ge­ne­ra­zio­ne del codice HTML emesso sul front end.

La scelta dello specifico framework back end dipende molto dall’ambiente di pro­gram­ma­zio­ne e dal lin­guag­gio di pro­gram­ma­zio­ne uti­liz­za­ti. I linguaggi uti­liz­za­ti più spesso sono PHP o Python, Ruby, Ja­va­Script e Java. Diamo un’occhiata ai framework back end più diffusi per questi linguaggi.

Symfony e Laravel: i più im­por­tan­ti framework back end in PHP

Symfony e Laravel sono due dei framework back end più diffusi. Entrambi per­met­to­no di pro­gram­ma­re complesse ap­pli­ca­zio­ni web senza dover partire da zero. Laravel è con­si­de­ra­to più facile e veloce da ap­pren­de­re, mentre Symfony è più potente e fles­si­bi­le.

Entrambi i sistemi sono noti per la loro struttura modulare. Dal framework PHP Symfony sono nate molte utili tec­no­lo­gie web. Anche il suo con­cor­ren­te Laravel ha con­tri­bui­to allo sviluppo con i suoi template Laravel Blade.

Consiglio

Impara a pro­gram­ma­re ap­pli­ca­zio­ni web con PHP in autonomia. Scopri il nostro vasto tutorial PHP.

Ruby on Rails: un grande classico dei framework back end MVC

Il framework back end Ruby on Rails (RoR) è stato visto come ri­vo­lu­zio­na­rio sin dalla sua comparsa e ha con­tri­bui­to alla marcia trionfale del lin­guag­gio di scripting Ruby. È difficile trovare un altro framework che abbia posto l’accento così tanto sulla pro­dut­ti­vi­tà e sulla sod­di­sfa­zio­ne degli svi­lup­pa­to­ri. RoR ha reso popolare l’approccio Model-View-Con­trol­ler (MVC), aprendo la strada a molti framework back end suc­ces­si­vi.

Pro­gram­ma­re in Python con il framework back end Django

Python è uno dei classici linguaggi di scripting web. Django mette a tua di­spo­si­zio­ne un potente framework back end per pro­gram­ma­re ve­lo­ce­men­te nuove ap­pli­ca­zio­ni web. Questo framework segue il principio Model-View-Con­trol­ler e dispone di un template engine integrato.

Consiglio

Segui il nostro tutorial su Python e impara le basi di questo lin­guag­gio di scripting.

Scrivere ap­pli­ca­zio­ni web in Ja­va­Script con Express e Node.js

Tra­di­zio­nal­men­te si faceva di­stin­zio­ne tra linguaggi di pro­gram­ma­zio­ne front end e back end. Ai linguaggi front end HTML, Ja­va­Script e CSS si con­trap­po­ne­va­no i linguaggi back end PHP, Python, Perl e Ruby. L’arrivo dell’ambiente di ese­cu­zio­ne Ja­va­Script Node.js è stato una ri­vo­lu­zio­ne. Da quel momento era diventato possibile uti­liz­za­re Ja­va­Script sia per il front end sia per il back end.

Node.js crea la base per la scrittura di ap­pli­ca­zio­ni web in Ja­va­Script. Su questa base si innesta di norma un framework web come Express. Questa com­bi­na­zio­ne è diventata famosa come parte dello stack MEAN con MongoDB e con il framework front end Angular.

Scrivere ap­pli­ca­zio­ni web in Java con il framework back end Spring

Di per sé, Java non è un lin­guag­gio che permette di rea­liz­za­re moderne ap­pli­ca­zio­ni web. Il framework Spring co­sti­tui­sce tuttavia una base solida per lo sviluppo di complesse ap­pli­ca­zio­ni Java. Gli sviluppi più recenti, come Quarkus, con­sen­to­no un’ese­cu­zio­ne ad alte pre­sta­zio­ni all’interno di container.

Consiglio

Scopri come creare le tue app Java con il framework Spring. Troverai tutte le in­for­ma­zio­ni del nostro tutorial su Spring Boot.

Vai al menu prin­ci­pa­le