Nell'articolo CMS - Qual'è il migliore? , indicavo in Joomla uno dei migliori CMS in circolazione, per diverse ragioni in cui spiccano la facilità d'uso, la gradevolezza grafica e la funzionalità del back-end, e, aspetti più importante, solidità e flessibilità.
Queste ultime due importantissime caratteristiche hanno a mio avviso decretato il successo di Joomla, che è riuscito a incuriosire ed attirare sia gli utenti che non dispongono di conoscenze approfondite di informatica ma prediligono il portale amatoriale fai-da-te sia i professionisti dello sviluppo software, che possono dar libero sfogo alla loro creatività realizzando componenti ad hoc per le loro esigenze, integrandoli completamente con il CMS. Il punto di forza di Joomla è l'architettura che caratterizza il sistema: molti altri CMS offrono la possibilità di estendere le funzionlità del sistema con componenti di terze parti ( vedi Drupal o Zen-cart per l'e-commerce, ad esempio ), ma nessuno con lo stesso livello di solidità, funzionalità e leggerezza con la quale Joomla permette l'installazione del proprio software. Ma allora Joomla è perfetto? Assolutamente no: una delle più grandi pecche di questo CMS è la pesantezze del sistema che viene installato di default: per chi ha confidenza con questo software, sa che è possibile installare il gestionale con il DataBase (DB) completamente vuoto (elemento che non tutte le installazioni di altri prodotti concorrenti permettono), ma questo non è sufficiente. Durante il processo di installazione viene configurato il DB con all'incirca una quarantina di tabelle, che nella maggior parte dei casi non verrano mai utilizzate. Questo si riflette nel conseguente spreco di spazio e nelle prestazioni delle relazioni con il DB: l'ideale sarebbe, per gli utenti che ne possiedono le competenze, permettere una personalizzazione del DB già in fase di installazione, in modo che il sistema finale abbia effettivamente solo ciò che gli serve per compiere al meglio il compito per il quale è stato progettato. Ad ogni modo, ciò che mi preme chiarire con questo articolo è la differenza logica che intercorre tra quelli che sono gli elementi principali che caratterizzano l'architettura e quindi la struttura di Joomla, i componenti, i mambots e i moduli. Differenze che quindi non si riferiscono al livello tecnico (sul web è possibile trovare veramente moltissimo materiale che letteralmente guida l'utente nella creazione di questi elementi, ad esempio potete vedere qui ), piuttosto vorrei chiarire quelle che sono le differenze concettuali che intercorrono tra questi elementi, ovvero rispondere a questa domanda: Quando devo sviluppare un elemento per un portale che ho deciso di implementare con Joomla, come posso decidere se tale elemento deve essere un Modulo, un Mambot od un Componente? La risposta a questa domanda è molto importante, perchè permette di implementare elementi nel modo più efficiente possibile per l'integrazione con Joomla : sbagliare la scelta, cioè realizzare il proprio software ad esempio come componente quando in realtà era sufficiente un modulo, porta alla creazione di elementi inefficienti, che possono rendere l'intero sistema instabile o rallentato, oltre ad essere sicuramente molto più difficile raggiungere il proprio obiettivo di sviluppo. Prima di effettuare la scelta e iniziare lo sviluppo del nostro software da integrare con il CMS è necessario fermarsi un secondo è riflettere seriamente su quelle che sono le funzionalità che servono al nostro elemento software: bisogna essere sicuri (o quasi) che la fase di progettazione ha portato un risultato chiaro e dettagliato, in cui sono esplicitate tutte le caratteristiche e tutti gli obiettivi che il software che stiamo andando ad implementare deve possedere e raggiungere. Una volta conclusa tale analisi, si può passare alla fase di scelta vera e propria. La prima grande considerazione che dobbiamo fare è sulla complessità del nostro software (complessità logica): a seconda della complessità, infatti, ci si deve rendere conto di quanti sotto-elementi si dovranno implementare (è possibile per esempio che si debba implementare un elemento software di una certa difficoltà, per cui la realizzazione richiede lo sviluppo di un componente, tre moduli e un mambot). Se le funzionalità che dobbiamo realizzare includono una gestione pesante, ovvero richiedono un forte appoggio alla struttura di back-end del CMS, quasi sicuramente ciò che ci serve è un componente: per essere più precisi, possiamo dire che un componente Joomla è un elemento software in grado di svolgere praticamente ogni tipo di lavoro, ma proprio per questo sono i più difficili da realizzare.
Come semplice linea guida, possiamo dire che abbiamo bisogno di un componente quando lo sviluppo del back-end richiede praticamente più della fatica che richiede lo sviluppo del front-end per un determinato elemento. In altre parole quando le funzionalità da implementare vanno molto oltre alla semplice visualizzazione dati o reperimento dati dal database.
Un modulo, invece, è utile se abbiamo bisogno di implementare una funzionalità che ad esempio può semplicemente estendere quella di un componente già esistente: in breve
i moduli sono delle estensioni, delle entità ausiliare rispetto al componente ai quali sono legati, non hanno praticamente bisogno di appoggiarsi al back-end (se non per la configurazione del modulo stesso) e possono essere visualizzati esclusivamente all'interno di zone predefinite nei template di Joomla.
Lo schema seguente mostra la scala crescente di complessità che caratterizza questi elementi del sistema Joomla : MODULO ---> MAMBOT ---> COMPONENTE Oltre alla complessità, questa scala rappresena anche una relazione di contenuto, nel senso che un componente può contentere uno o più moduli e/o uno o più mambots, a seconda della complessità del componente stesso e delle funzionalità che deve implementare. Ma un modulo o un mambot non possono contenere un componente. Essi hanno funzioni più limitate.
Il mambot è un elemento che esegue una funzionalità specifica e che ha una complessità variabile a secondo del compito che deve svolgere. Normalmente un mambot manipola i contenuti prima della loro visualizzazione, lavorando dietro le quinte del sistema.
Durante lo sviluppo di elementi software Joomla, è molto frequente trovarsi davanti la relazione MODULO ---> COMPONENTE ovvero è molto frequente che le funzionalità che dobbiamo implementare possano stendersi sulla realizzazione di un componente principale al quale gli vengono integrate delle estensioni sotto forma di moduli. Tuttavia, prima di iniziare lo sviluppo, consiglio vivamente di rileggere le definizioni sopra scritte, in modo da evitare il più possibili inutili sprechi di tempo o realizzazioni instabili, inefficienti e assolutamente scadenti dei nostri elementi software. Approfondimenti Non disponibili
|