Come funziona un Social Network (lato programmatore)?

Posted By Roberto Romagnoli on 9 Ago, 2022 |


Questo non sarà il solito articolo su come fa crescere il proprio Social Network per monetizzare; ma vi suggerirò proprio come costruirne uno, dal lato programmatore. Nell’era dei Social Network, è bene che un aspirante sviluppatore o programmatore sappia come ne funziona uno. Vuoi perché un giorno potreste ritrovarvi a lavorare per Meta, o LinkedIn (magari), vuoi perché vi ritroverete a svilupparne uno da soli. Oltretutto, la tendenza per il futuro sembra convergere tutta sui Social. Già oggi esistono Social Network dedicati a quasi ogni aspetto della vita quotidiana. Ci sono Social generici, come Facebook e Twitter, Social per foto/video come Instagram e TikTok, Social professionali come LinkedIn, Social per gamer come Ludomedia e Social aggregatori, come ComeHome o NextDoor. Sembra che ciò che un tempo si faceva tra portali con Forum e mIRC, oggi si sia spostato sui Social Network. E le aziende iniziano ad investirci. Ma per un programmatore, come funziona un Social Network? Quali sono i linguaggi di programmazione da usare, quali framework? Quali competenze servono per crearne uno? Scopriamolo.

È tutta una questione di database

Quando pensiamo ai Social Netowrk, la prima immagine che ci viene in mente è il sito “finito”. In generale, quando si parla di qualsiasi sito si pensa al suo front-end, ovvero la resa finale che esso ha sul nostro browser. Ma i siti hanno anche un back-end, ovvero il codice con cui sono realizzati, che rappresenta il motore che li fa girare. Il back-end di un Social Network riceve le richieste dagli utenti e fornisce come risposta una pagina html autogenerata. Questa pagina può rappresentare un semplice profilo utente, un feed con i post degli utenti collegati, la pagina dei messaggi privati, un album di foto etc.

Il sistema che rende tutto possibile è basato sui database. Se togliamo ai Social Network la parte visuale, spogliandoli da HTML e CSS, vediamo un cumulo di codice che non fa che collegare tra loro i record di un enorme database degli utenti. In sostanza:

  • L’utente manda una richiesta HTTP al server del Social Network;
  • Il server elabora la richiesta;
  • Se la richiesta è una HTTP POST con, ad esempio, user e password (o email e password), allora il server cerca nel database una corrispondenza e fa loggare l’utente;
  • Se invece la richiesta è una HTTP GET, il server controlla se negli URL presenti nella sua lista, esiste la pagina richiesta dall’utente;
  • Il server poi, si collega al database utenti e ricava dai record tutte le informazioni di cui ha bisogno;
  • Dopo aver recuperato le informazioni dai record del database, il server cerca il template adatto (configurato su un apposito file) e genera un file html da restituire all’utente che ha fatto la richiesta

Il database in questione contiene diverse informazioni, tra cui username, password, email, numero di telefono, post, foto, video, storie, utenti seguiti/amici, pagine seguite etc. Alcuni di essi sono dati sensibili (come email e password) e sono visibili solo all’utente che ne è proprietario. Altri sono elementi pubblici, come i post, le foto, i video e altro.

Che linguaggi di programmazione usare?

Qui il campo è abbastanza libero. Voglio dire, il risultato finale sarà sempre una pagina HTML e la sua grafica sarà sempre collegata ad un CSS, con magari qualche elemento in JavaScript. Ma per il back-end la scelta è pressoché ampia. Più che di un linguaggio di programmazione, abbiamo bisogno di un framework adatto. Quindi, se troviamo un linguaggio di programmazione con un buon framework che consente di creare un web server, allora possiamo tranquillamente utilizzarlo.

Comunque, se volete farvi un’idea, di seguito vi faccio un elenco di ciò di cui potreste aver bisogno. Alcuni elementi sono essenziali, altri a scelta. Ma comunque servirà a farvi un’idea. Dunque, per costruire un Social Network “from scratch” vi servirà conoscere:

Per il Front-End

  • HTML;
  • CSS;
  • JavaScript (React);
  • Eventualmente, le librerie di Bootstrap (che sono in CSS e JavaScript)

Per il Back-End (qua la scelta è libera)

  • PHP;
  • JavaScript (con framework come Node.js, o Express);
  • Python (con framework come Django);
  • Java (con framework come Spring);
  • ASP.NET;
  • SQL, MySQL, o PostgreSQL per la gestione dei database

Ovviamente i miei sono solo consigli. Sta a voi poi decidere da dove iniziare e con quale linguaggio. Le combinazioni possono essere innumerevoli. Quello che vi consiglio io è di documentarvi su quali siano i linguaggi di programmazione utilizzati oggi dai siti più importanti e cominciare a studiare quelli. Creare un Social Network, dal lato programmatore, non è una cosa certo semplice, ma neanche così comoplicata…se saprete impegnarvi.

BuddyBoss (ex-BuddyPress)

Per chi invece non ha voglia di scrivere il codice da zero, esistono CMS dedicati anche alla creazione di Social Network. Tra i più famosi annoveriamo BuddyBoss (un tempo conosciuto come BuddyPress). Si tratta di un plug-in per WordPress che contiene un insieme di elementi comuni ai tipici Social Network e consente di aggiungere ulteriori funzionalità attraverso l’ecosistema dei plug-in WordPress (come Elementor, Astra e tanti altri).

BuddyPress è stato creato con l’obiettivo di facilitare la creazione di siti web per il Social Networking. Potente, ma nel contempo semplice da usare. Pensato per sviluppatori e programmatori alle prime armi, che però “smanettano” bene con WordPress.

Facebook Comments