web-design-cms cms-web-design

CMS o framework....o HTML?

cms-framework

Tra le alternative proposte dal titolo stabilire quale sia la scelta più opportuna non è così scontato.

Assieme ad altri punti salienti di design e sviluppo web, di CMS, framework e linguaggi abbiamo già discusso negli Articoli principali di PAN Web Design (si veda il menu).
Adesso ci concentreremo singolarmente e nel dettaglio su ognuno di essi per cercare di delinearne le rispettive convenienze a seconda dell'oggetto dello sviluppo.

  1. CMS
  2. Framework
  3. HTML
1.

CMS

Partiamo dai CMS.
quali-sono-i-linguaggi-più-comuni-usati-dai-cms Parliamo di software che raggruppano e coordinano altri software, presentando un'interfaccia grafica di gestione semplice e intuitiva che consente di creare un documento e aggungervi strutture, contenuti e stile senza richiedere particolari conoscenze di sviluppo.

Dispongono di un elevato numero di temi e plugin che ne estendono le funzionalità senza necessitare configurazioni complesse.
Se è necessaria una funzionalità molto probabilmente qualcuno l'ha già sviluppata e messa a disposizione, ma questo non vuol dire che esista un widget per ogni bisogno.
cms-plugin Un sito potrebbe richiedere una particolare funzionalità e non esserci un plugin in grado di soddisfarla, oppure potrebbe esisterne già uno ma che non riesca a coprire esattamente l'esigenza da soddisfare.
Tali scenari richiedono il coinvolgimento di uno sviluppatore che intervenga "lato-codice" per colmare la lacuna del CMS.

CMS come WordPress e Joomla sono open source, pertanto il loro sviluppo è costantemente attivo; sono soggetti a continui aggiornamenti e il rilascio di patch di sicurezza avviene periodicamente.
Sfortunatamente, la loro fama è solita attirare anche le mire di utenti malintenzionati e con conoscenze tali da sfruttare eventuali falle presenti nel codice, lanciando attacchi in grado di danneggiare l'immagine e, nei casi più gravi, l'economia di un sito web.
cms-updates È importante quindi mantenere sempre aggiornata non solo la versione corrente del CMS in uso ma anche quella dei componenti aggiuntivi, i quali possono presentare vulnerabilità del software a loro volta sfruttabili per infettare il sito e fargli eseguire azioni nocive.
Gli aggiornamenti di un CMS, per quanto di fondamentale importanza, possono sollevare problemi di funzionamento se i temi e i plugin presentano incompatibilità con le versioni successive del CMS.
Gli stessi plugin, poiché sviluppati da programmatori differenti, potrebbero interferire con il reciproco funzionamento.
E poi le prestazioni.
Installare tanti plugin spesso comporta un maggiore carico di lavoro per client e server, con la conseguente riduzione delle performance di caricamento del sito.

I CMS si rivelano indicati per gestire siti dalle dimensioni tali da giustificarne l'affidamento del back-end a uno strumento automatizzato e che richiedano aggiornamenti frequenti dei contenuti.
Altrettanto opportuni non si rivelano quando l'oggetto dello sviluppo si sposta verso applicazioni web di una certa complessità, per le quali si dimostra più opportuno il ricorso a un framework.

2.

Framework

Andiamo ai framework.
framework Un web framework (o framework per applicazioni web) è un pacchetto, basato su un dato linguaggio, che fornisce strumenti, tool e best practices destinati a semplificare il lavoro dello sviluppatore.
Per servirsene è necessaria almeno una conoscenza di base del linguaggio su cui si fondano, questo perché la loro finalità è quella di rendere lo sviluppatore più produttivo, non sostituendo il coding, ma velocizzandolo, soprattutto grazie alla riutilizzabilità del codice.

Si presentano quali ambienti di sviluppo particolarmente flessibili, in grado di soddisfare diverse esigenze di design e di logica applicativa, oltre che ottimizzati in termini di performance.

Per quanto anch'essi diffusi, a differenza di molti CMS sono sistemi a sé stanti (non open source).
bug-exploit Potenziali falle di sicurezza vengono "fixate" più rapidamente, oltre al fatto che già di per sé forniscono agli sviluppatori le pratiche migliori da seguire per evitare di creare eventuali brecce nella sicurezza dell'applicazione.
Il più delle volte i sorgenti di un framework non hanno la necessità di essere aggiornati così frequentemente quanto quelli dei CMS.
Siti e applicativi basati su di essi presentano maggiore sicurezza e il codice custom scritto dallo sviluppatore risulta più difficile da violare.
Inoltre, dispongono di funzionalità di crittazione e di protezione da alcune delle vulnerabilità più comuni (Cross Site Scripting, SQL injection).

La scalabilità è un altro punto a favore dei framework, in quanto la gestione separata di logica front-end e back-end, affidata a framework distinti, semplifica l'aggiunta di nuove funzionalità e l'aggiornamento dei rispettivi software, riducendo notevolmente il rischio di eventuali incompatibilità.

Pur mettendo a disposizione delle interfacce per alcune configurazioni di rito, un framework si basa sulla scrittura di codice, richiedendo a monte uno studio e la comprensione dei costrutti riconducibili al linguaggio di riferimento.
Di conseguenza, un framework rende necessarie competenze tecniche più specialistiche e tempi di sviluppo maggiori rispetto all'impiego di un CMS, rivelandosi una scelta efficace soprattutto su progetti complessi che richiedano un controllo capillare di ogni singolo dettaglio.

3.

HTML

E HTML?
linguaggio-html Optare per le tecnologie native (HTML in primis, più CSS e JavaScript a completamento dello stack front-end, più eventuali soluzioni per il back-end) significa sviluppare da zero e scrivere codice puro.

Quando un sito assume le caratteristiche di una vetrina di poche pagine, i cui contenuti non sono destinati a modifiche frequenti, oppure se trattasi di una landing page, una scelta appropriata potrebbe appunto essere quella di scrivere un codice personalizzato, ottimizzandolo al meglio per prestazioni e motori di ricerca.
Pertanto, laddove non siano necessari cambiamenti regolari nel tempo e la velocità di caricamento si riveli fattore determinante, scrivere codice "nudo e crudo" sembra rivelarsi l'alternativa più conveniente.

cms-html Ma quando si tratta di siti dinamici, il cui comportamento cambia anche in base agli input degli utenti, sviluppare in nativo (ad es. con PHP ed SQL), reinventando ogni volta la ruota e preoccuparsi di scrivere codice sicuro che non vada incontro a bug di sicurezza, non è sempre l'opzione più favorevole, soprattutto quando si può contare su strumenti (sottoforma di libreria o framework) basati sui migliori design pattern.

Nello scenario anzidetto è sicuramente auspicabile anche l'utilizzo di un CMS, la maggior parte dei quali è basata su PHP, uno dei linguaggi più comuni usati dalle piattaforme in questione per il proprio sviluppo.
Ma, è anche vero che i CMS sono sistemi abbastanza pesanti che non girano velocemente quanto del puro codice.
Spesso, il codice presente sotto il cofano del CMS non risulta particolarmente ottimizzato, al contrario di un codice nativo e personalizzato che, il più delle volte, rende esenti da appesantimenti inutili e controproducenti per il posizionamento organico.


Privacy Policy