Il termine Framework può essere tradotto come intelaiatura, struttura. Questo termine deriva dalla programmazione di software, oggi i framework sono ampiamente diffusi anche per la programmazione web.
In pratica questo telaio già pronto, consente al programmatore di avere già una base su cui andare a lavorare, tale lavoro andrà realizzato rispettando le regole e il linguaggio di sviluppo del framework stesso. Due ottimi esempi di framework per il web sono Django (il più famoso web framework, basato su linguaggio Python) e Ruby on Rails (altrettanto famoso web framework, basato su linguaggio Ruby).
Siti come Airbnb, Shopify, Github, SoundCloud ecc. ecc. sono stati sviluppati sul framework Ruby on Rails, invece alcuni esempi di siti che usano Django sono Instagram, Disqus, Pinterest, National Geographic e tanti altri.
Dal punto di vista della programmazione un Pattern è una soluzione generale ad un problema ricorrente.
Per problema non si intende realmente una problematica (es. se non funziona il form di contatto, cosa fa la pagina?), per problema si intende azione, quindi un’azione ricorrente es. chiamate al database che restituiscono dati in pagine html.
Ti è chiaro? 🙂 Non credo… vediamo con questo esempio:
Sei su un forum di discussione. Il forum contiene utenti iscritti, login, sezioni, thread, post ecc. ecc.
Tutte queste cose sono dei dati e sono conservati in uno o più Database.
Quando attraverso la pagina del forum che stai leggendo, compi un’azione es. mostra tutti i thread di Digital Problem Solving, hai effettuato una chiamata al Database.
In pratica hai detto al Database fammi vedere le altre discussioni di questo utente, discussioni che tu caro database stai conservando sotto forma di dati e rendile leggibili a me che non sono un database.
Quindi eccoti sulla nuova pagina con tutti i thread iniziati da Digital Problem Solving.
Ecco, il pattern è già pronto e ti permette di interrogare il db e di ottenere una risposta in html. Perché ricorrente? Perché (seguendo l’esempio del forum) tutti gli utenti del forum potrebbero richiedere questa operazione più e più volte, oltre a tutta quella marea di operazioni automatiche di cui l’utente nemmeno si accorge.
Un ottimo esempio di web development pattern è MCV che funziona esattamente come ti ho spiegato nell’esempio del forum, se hai ancora dei dubbi lo schema di seguito dovrebbe fuorviarli del tutto.
Spiegare una Library è sicuramente più facile. Una Library è un set di funzioni che vengono richiamate, anche qui ci troviamo davanti ad un set già pronto, il programmatore è libero di scegliere quali parti di questo set usare/richiamare… non deve necessariamente usare tutte le funzioni della Library. Un’esempio di Library utile per il web development è quella di Ajax.
Il Toolkit è formato da una serie di strumenti atti a svolgere delle azioni e può essere formato da più librerie. Anche il toolkit si occupa di generare una serie di piccoli frammenti ripetibili all’infinito. Esempi di web toolkit sono Bootstrap, Topcoat e Zurb Foundation.
Se sei arrivato fino a qui hai superato la parte difficile, complimenti.
Il termine CMS è l’acronimo di Content Management System. Alcune caratteristiche cambiano in base al CMS, altre sono standard come ad esempio la possibilità di caricare contenuti, editarli, gestione delle immagini, gestione della cronologia, l’indicizzazione interna dei contenuti, la ricerca e il recupero degli stessi.
In pratica un CMS ti consentirà di gestire i contenuti e di presentarli lato web.
Ormai i CMS più famosi consentono di occuparsi anche della parte frontend grazie ai visual editor, agli store online di temi (template) e ai moduli da aggiungere.
I CMS più usati? Al primo posto c’è WordPress per blog, magazine e piccoli siti. Magento per gli e-commerce. Compare ancora Joomla che ormai sta esalando gli ultimi respiri… anche Drupal viene usato, anche se non quanto WordPress, probabilmente per la difficoltà del workflow lato backend.
Mi auguro che questo articolo ti aiuti a fare chiarezza, i termini tecnici sono molto importanti, acquisire il linguaggio corretto ti aiuterà nella gestione del progetto, delle richieste e del cliente.
Fonti: 1 - 2 - 3 - 4 - 5 - Copyright icone The Noun Project - Copyright Foto UnsplashHai in mente un progetto web ma non sai come, con chi e con cosa realizzarlo? - - - Scrivi a info@digitalproblemsolving.it
2 Comments
Sostanzialmente concordo abbastanza con le varie definizioni.
Ma su questa affermazione: “Compare ancora Joomla che ormai sta esalando gli ultimi respiri…”
Ultimi respiri???
Ma se c’è un’evoluzione continua del progetto da paura! – che personalmente utilizzo dalla versione 1.0, da quando i creatori di Joomla si sono staccati dal progetto Mambo.
🙂
Ciao GG61, innanzi tutto grazie per il tuo commento. Devo dire che nelle ultime settimane ho rivalutato Joomla per quanto ha messo in atto per essere compliant alla GDPR. Non ti nego che non mi è mai piaciuto e che dopo averlo testato come te sin dagli inizi, me ne sono sempre tenuta alla larga perchè troppo macchinoso anche per i clienti che devono aggiornare in autonomia i contenuti. Sulla questione morte/vita questo post è stato scritto nel 2017, ma ad oggi poco è cambiato. La percentuale di utilizzo di Joomla è bassissima rispetto a WordPress o ad altri CMS… ti riporto questa analisi di BuiltWith https://trends.builtwith.com/cms