
GUIDE PER ASPIRANTI PROGRAMMATORI
Cos’è un framework per il web
Un framework può essere definito come un insieme strutturato e organizzato di librerie di codice, linee guida e strumenti che forniscono una base su cui gli sviluppatori possono costruire applicazioni software. In termini più formali, un framework è un ambiente di sviluppo che facilita la progettazione, l’implementazione e la manutenzione di applicazioni seguendo determinate architetture…

Vuoi avviare una nuova carriera o fare un upgrade?
Trova il corso Digital & Tech più adatto a te nel nostro catalogo!
- Server locale con XAMPP
- Come installare XAMPP
- Come configurare XAMPP
- Gestione del Database con phpMyAdmin
- Che cos’è Composer e il suo ruolo in Symfony
- Come installare e come configurare Composer
- Gestione delle dipendenze con Composer
- Autoloading con Composer
- Scripts e Comandi Personalizzati con Composer
- Come configurare Visual Studio Code
- Ambiente di sviluppo Symfony remoto (Editor online Symfony)
Un framework può essere definito come un insieme strutturato e organizzato di librerie di codice, linee guida e strumenti che forniscono una base su cui gli sviluppatori possono costruire applicazioni software. In termini più formali, un framework è un ambiente di sviluppo che facilita la progettazione, l’implementazione e la manutenzione di applicazioni seguendo determinate architetture e best practices.
Nel contesto dello sviluppo web, può essere visto come un insieme di componenti software che fornisce gli strumenti necessari per sviluppare applicazioni web. Questo può includere librerie per la gestione del database, template engine per la generazione di una pagina HTML, funzionalità per la gestione della sicurezza, della sessione utente e molto altro. In sostanza, un framework web è un ecosistema che permette agli sviluppatori di costruire applicazioni web in modo più efficiente e meno incline agli errori rispetto alla scrittura di codice plain.
Vantaggi di un framework per il web
In generale, utilizzare un framework non è indispensabile per creare una web app. Un framework può essere visto come uno strumento di supporto a disposizione dello sviluppatore che agevola e migliora la sua esperienza di sviluppo software.
Possiamo riassumere i principali vantaggi forniti da un framework attraverso i seguenti punti:
- Struttura e standard: uno dei principali vantaggi nell’utilizzo di un framework è la struttura standardizzata e la serie di convenzioni che impone allo sviluppatore web. Questo si traduce in molteplici benefici come aderenza alle best practices del linguaggio utilizzato e facilità di collaborazione e lavoro in team.
- Riutilizzo del codice: i framework offrono componenti riutilizzabili per funzionalità comuni a tutti gli applicativi web come autenticazione utente, interazione con database, gestione dei form, ecc., riducendo drasticamente il tempo e l’effort necessari per costruire software da zero. Di conseguenza, si riduce anche la quantità di codice da scrivere per “reinventare la ruota”, ovvero per scrivere funzionalità che non appartengono strettamente al problema che si vuole risolvere.
- Sicurezza: la sicurezza è un tema fondamentale, soprattutto in ambito web, in quanto ogni sito è potenzialmente esposto quotidianamente e costantemente a richieste da parte dei vari fruitori della rete Internet. I framework moderni solitamente includono funzionalità di sicurezza integrate, come la protezione contro SQL Injection e XSS (Cross-Site Scripting), che aiutano a proteggere l’applicazione da attacchi molto comuni nel mondo del web.
- Focus sulla soluzione: con tutti gli strumenti e le librerie messe a disposizione dal framework, gli sviluppatori possono concentrarsi sulla logica specifica dell’applicazione senza perdersi nei dettagli di basso livello o in problematiche comuni già affrontate da qualcun altro.
Plain PHP vs Framework per il web
Analizziamo un esempio di semplice codice sorgente, scritto in PHP, per affrontare i possibili problemi legati alla scrittura di codice plain senza avvalersi di alcun framework.
<?php $conn = mysqli_connect("localhost", "user", "password", "db"); if (!$conn) { die("Errore connessione al DB " . mysqli_connect_error()); } ?> <html> <head> <title>Pagina di esempio</title> </head> <body> <h1>Lista clienti</h1> <?php $sql = "SELECT nome, cognome FROM clienti"; $result = mysqli_query($conn, $sql); while ($row = mysqli_fetch_array($result)) { echo $row['nome'].' '.$row['cognome'].'<br>'; } ?> </body> </html>
Nelle prime righe del codice viene istanziata una connessione ad un database locale.
Successivamente si passa all’apertura dei tag HTML della pagina web. Quindi viene eseguita una query SQL sul database per recuperare la lista di ipotetici clienti. Infine, i risultati della query vengono ciclati e ad ogni iterazione viene richiesta la stampa a video del nome e cognome del cliente corrente seguito da un ritorno a capo.
Questo esempio genera una pagina web molto semplice, anche un developer alle prime armi e con poca esperienza è in grado di comprenderne il funzionamento. Tale codice è anche facile da distribuire, infatti basta salvarlo all’interno di un file con estensione “.php”, caricarlo su un web server e successivamente visitare la pagina da un browser. Questo approccio, ottimo per casistiche basilari, non è adatto per lo sviluppo di applicazioni web più complesse per una serie di motivi che, a breve, analizzeremo.
In generale, anche una semplice applicazione web è solitamente composta da più pagine. Quindi, cosa succede se più parti di un’applicazione hanno bisogno di utilizzare la stessa funzione, ad esempio la connessione ad un database proprio come nell’esempio precedente? Sicuramente è da evitare la duplicazione del codice: pertanto, una possibile soluzione potrebbe essere quella di condividere la logica di connessione al database in una funzione comune a più pagine.
Inoltre, all’interno dello stesso file troviamo la gestione dei tag HTML, la logica di accesso ai dati e la parte di visualizzazione degli stessi con relativa formattazione. Occuparsi contemporaneamente di tutti questi aspetti può portare ad una lunghezza eccessiva del codice sorgente grazie alla quale è facile, come sviluppatore, generare bug. Sarebbe meglio separare le varie sezioni del codice in più file sulla base, ad esempio, della tipologia di problema affrontato o della responsabilità gestita. In questo modo, più sviluppatori possono occuparsi contemporaneamente di aspetti differenti come la parte di interfaccia utente e la logica di business.
In conclusione, un framework per il web non è solo un insieme di strumenti ma è un ecosistema completo che fornisce una base solida per costruire applicazioni web robuste, sicure e manutenibili. L’uso di un framework può significativamente migliorare la qualità del codice, la collaborazione in team e la velocità di sviluppo.
CONTENUTI GRATUITI IN EVIDENZA
Guide per aspiranti programmatori 👨🏻🚀
Vuoi muovere i primi passi nel Digital e Tech? Abbiamo preparato alcune guide per aiutarti a orientarti negli ambiti più richiesti oggi.