Libreria

Che cos'è un web framework

Come cambia il significato della parola quando viene applicato alla tecnologia? In realtà non subisce particolari trasformazioni. Nel glossario tecnologico, un web framework viene definito come un ambiente all'interno del quale sviluppare applicazioni e siti web. I framework sono progettati per supportare lo sviluppatore nella creazione di progetti e, più nello specifico, per facilitare il processo di scrittura del codice.

Frequentemente in passato gli sviluppatori realizzavano i loro siti partendo da zero. Al giorno d'oggi è considerato un comportamento da evitare, perchè partire dalle basi significa imbattersi spesso in problemi di routine che, per essere risolti, richiedono tempo. Inoltre molti siti hanno diverse caratteristiche in comune, quindi scrivere tutto è una perdita di tempo. E poiché il tempo nella vita degli sviluppatori è tra i valori più preziosi, qualcuno ha pensato a delle strutture pronte da usare che permettessero di superare questi problemi, i framework.

Sono bastati sulla metodologia DRY (Don’t Repeat Yourself, ovvero non ti ripetere) e sono progettati per gestire le attività di base e quelle “ripetitive”. La loro funzione principale è aiutare gli sviluppatori ad accelerare il processo di creazione del sito. Esplorando diversi blog e pagine web si scopre che c'è molto caos informativo sul tema e che i framework vengono spesso confusi con le librerie. I framework sono software, basati su un linguaggio di programmazione, che offrono diversi strumenti per le operazioni CRUD (Create, Read, Update and Delete), ovvero librerie, compilatori, debugger etc.

Per far comprendere meglio in cosa i framework differiscano dalle librerie, elencherò le caratteristiche distintive di queste piattaforme. Innanzitutto i framework riducono lo stress che comporta realizzare un progetto complesso in quanto sono loro a gestire il controllo dei flussi. Inoltre, hanno un comportamento di default, che si suppone sia progettato per aiutare gli sviluppatori a risolvere i problemi. Se consideriamo che creano un ambiente, è facile capire che queste piattaforme seguono regole precise. Queste strutture sono implementabili. Avete bisogno di aggiungere funzionalità specifiche alla piattaforma di base? È facile estenderla o specializzarla: basta aggiungere il code necessario. L'unica regola da tenere presente quando si modifica il proprio framework è questa: aggiungete il vostro codice ma non cambiate quello esistente.

I framework sono composti da frozen e hot spots. Mentre i primi definiscono l'architettura globale (vale a dire i componenti di base e il modo in cui si relazionano tra di loro), i secondi sono dei punti di interazione manipolabili, che gli sviluppatori possono utilizzare per aggiungere il loro codice.

Poichè l'obiettivo principale dei framework è quello di ridurre il carico di lavoro degli sviluppatori, essi promuovono il riutilizzo del codice. È una benedizione, perchè ciò implica che quando si deve creare un oggetto specifico, sarà sufficiente scrivere il codice applicativo una volta sola, anche se l'oggetto in questione verrà utilizzato più di una volta all'interno del progetto. La modularità è una diretta conseguenza del modello dell'architettura. La maggioranza dei framework, infatti, utilizza il modello MVC (model-view-controller) o varianti di esso e quindi la struttura logica rimane separata dall'interfaccia utente.

Anche il processo di design diventa più facile da gestire se si utilizza un framework. Molti di loro, infatti, hanno un sistema di templating o facilitano comunque l'upload del proprio template system. Risparmierete tempo perchè grazie a questa caratteristica i blocchi di codice HTML comuni a tutto il progetto, come l'header e il footer, dovranno essere scritti solo una volta.

Qualche paragrafo più sopra ho descritto i vantaggi che comporta adottare un framework, ma penso che l'aspetto relativo alle tempistiche necessiti di un approfondimento. Prendiamo in esame questo caso: il vostro cliente vi contatta per realizzare un progetto molto complesso e per riuscire a costruirlo avete bisogno di lavorare in team. Certamente, se si impiega una di queste piattaforme, sarà necessario del tempo per studiare come funziona e per imparare ad usarla. Ma in seguito a questa prima fase tutti i membri del team saranno in grado di lavorare autonomamente. Inoltre, adottare un framework significa sviluppare i vari progetti secondo delle regole ben precise e quindi impedire a sé stessi di pasticciare con il codice! Una volta acquisite le competenze necessarie, inoltre, sarete in grado di sviluppare progetti sempre più complessi in tempi sempre più ridotti.