Negli anni passati i siti venivano sviluppato usando un framework web sviluppato internamente: il TiP. Ora si è optato per una soluzione basata su CMS SilverStripe.

La molla che ha reso necessario lo sviluppo di applicazioni web nella eNTiDi è stata, come spesso accade, la necessità. Nel caso specifico la ricerca di soluzioni per l'implementazione del sito istituzionale (anno 2004) ha dato esiti sorprendentemente deludenti: il livello qualitativo dei siti aziendali in Italia non era accettabile.

Web amatoriale

Capita ancora oggi che il web non venga preso sul serio o sia considerato alla pari delle pagine gialle. Ciò comporta la perpetuazione di idee fuorvianti piuttosto radicate.

  • Ricerca forzata nello stupire (effetto luna park)
    Una tra le piè diffuse (ed errate) credenze è che una pagina diversa e/o appariscente sia più visibile. Sebbene questa visione possa essere valida in un elenco del telefono, nel web è controproducente. La quasi totalità degli utenti ricerca nuove informazioni usando i motori di ricerca. Una home page farcita di elementi multimediali, lenta nel caricamento o palesemente artificiosa verrà fortemente penalizzata dai motori di ricerca che non la visualizzeranno delle pagine dei risultati. L'utente inoltre si aspetta una risposta rapida: un sito lento viene considerato obsoleto.
  • Sito ottimizzato per... / Questo sito richiede...
    Essere costretti ad usare un determinato browser, ad installare uno specifico plug-in o in genere a dipendere da una specifica tecnologica per avere un'informazione è piuttosto fastidioso. Gli utenti usano il web per ottenere dati, non per vedere graziose animazioni. Dover installare un software per poter leggere un numero è, nella migliore delle ipotesi, frustrante.
  • Filmato introduttivo o animazioni gratuite nella home page
    Una delle visioni più urticanti in cui un utente abituale della rete possa incappare: non aggiunge alcuna informazione e, a lungo andare, genera repulsione. Fortunatamente questa pratica sta lentamente scomparendo, anche se qualche sito ancora soggetto all'effetto luna park ne fa uso.
  • Pagine perennemente in costruzione
    Una pagina inesistente è più professionale di una pagina in eterna costruzione.
  • Interfaccia inconsistente
    Se l'albero delle pagine è a destra deve rimanere sempre a destra, non muoversi o scomparire al cambio pagina. Questo problema, tipico dei siti statici sviluppati con strumenti scadenti, è quasi scomparso con l'avvento dei framework web e dei CMS dinamici.

Web professionale

Un sito web, per essere considerato quantomeno tale, deve aderire agli standard web dettati dal consorzio W3C. Ciò implica che ogni pagina debba passare — o almeno non ignorare completamente — una serie di validatori che controllano la semantica di base. Un programmatore può decidere di ignorare questi standard (per esempio, la home page di Google non valida); l'importante è che lo faccia per scelta, non per ignoranza. Inoltre un sito professionale dovrebbe essere presentato a layers, cioè a strati opzionali che vengono applicati sul contenuto senza modificarlo, in modo da poter essere tolti senza pregiudicare le informazioni contenute nella pagina web.

La tecnica di sviluppo web partendo dal basso e appoggiando degli strati opzionali sopra il cuore del sito (ossia sopra il contenuto) è conosciuta con il nome di progressive enhancement (arricchimento progressivo). Di seguito viene riportata la descrizione sommaria dei tre layer fondamentali di un sito professionale: contenuto, presentazione e comportamento.

Contenuto (HTML)

Il cuore di un sito web è il contenuto: tutto ciò che viene aggiunto è un di più che ne agevola e rende piacevole la consultazione. Senza contenuto un sito è destinato a fallire perché non ha alcuna informazione da dare.

Un sito professionale deve essere perfettamente navigabile a questo livello: questo è ciò che tutti i browser sono in grado di visualizzare, ivi compresi palmari, telefoni cellulari et similia. Inoltre è l'unico layer che può essere letto da un sintetizzatore o trascritto su una tastiera braille o tradotto in altre lingue da strumenti automatici.

Il contenuto può includere immagini o filmati se questi fanno parte dell'informazione da trasmettere (ossia se siete fotografi o cineoperatori). In ogni caso è buona norma fornire un'alternativa di testo per ragioni di accessibilità sopra citate.

Questo è l'unico layer analizzato correttamente da ogni webcrawler, i programmi automatici che indicizzano le pagine per i motori di ricerca. Se il contenuto è mal strutturato, incompleto o addirittura inaccessibile, l'intero sito verrà fortemente penalizzato nei risultati delle ricerche.

Un esempio estremamente comune è l'uso del filmato introduttivo che solitamente funge da tappo per il contenuto: un sito così progettato avrà da pochissime a nessuna possibilità di diffusione e rimarrà un nodo isolato dalla rete.

Presentazione (CSS)

La presentazione è da considerarsi come il vestito del contenuto. Il più sopravvalutato tra i layers, negli anni passati è stato il pomo della discordia nella lotta tra i browsers. A tutt'oggi non è raro imbattersi in diciture tipo Best viewed with Explorer, Risoluzione ottimale: 1024x768, Selezionare tipo di connessione o altre amenità del genere.

Una buona presentazione deve essere consistente, cioè il layout della pagina deve essere ben definito. Ciò comporta che i comandi non devono spostarsi ad ogni cambio pagina con stravolgimenti nella struttura grafica: la presentazione deve essere chiara, non deve far diventare un incubo la navigazione.

Un altro importante aspetto è anche in questo caso l'accessibilità, troppo spesso ignorata: si dovrebbe poter navigare l'intero sito con la sola tastiera.

Comportamento (Javascript)

L'aggiunta di automatismi e funzioni ausiliarie interattive può sicuramente migliorare l'usabilità generale di un sito, a patto che non rovini quanto implementato in precedenza.

Per fare ciò viene usato l'EcmaScript (meglio noto con il vecchio nome di JavaScript), un linguaggio di scripting sul lato client che deve agire esclusivamente a livello presentazione, ossia il contenuto deve rimanere immutato. La tecnica di aggiungere funzionalità ad un sito già completo è nota come unobtrusive javascript (javascript non intrusivo).

The I Preprocessor

PEARSu di un sistema LAMP è stato implementato un preprocessore usando come mattoni i componenti e l'infrastruttura PEAR. Ciò ha consentito di sviluppare un framework usabile in tempi molto brevi. È nato così TiP, il preprocessore dinamico inizialmente usato dalla eNTiDi per implementare siti dinamici. Inizialmente pensato come il collante per tenere insieme i diversi componenti, TiP si è successivamente evoluto in un framework indipendente mantenendo l'intento originale nella sottodirectory pear.

TiPIl framework TiP svolge egregiamente il suo lavoro, ossia consentire di sviluppare un sito dinamico in tempi brevi lasciando un ampio grado di libertà per eventuali aggiornamenti. L'inserimento e modifica del contenuto avviene attraverso un flessibile wiki engine che fornisce un ampio grado di estensibilità futura. Questi i vantaggi principali rispetto ad altre soluzioni:

  • modelli autocontenuti nel database
    La base dati è definita esclusivamente nel database ed gli eventuali dati supplementari vengono impostati usando i commenti dei campi o i nomi convenzionali. Ciò significa che, per esempio, aggiungere o modificare un modello può essere fatto direttamente on-line usando solo PhpMyAdmin.
  • logica e stile separati
    Sotto la directory dello stile non c'è nemmeno un comando PHP mentre sotto la directory della logica non c'è alcun tag HTML (con l'eccezione di qualche componente PEAR che presenta alcuni tag HTML direttamente nel codice).
  • struttura modulare
    L'albero delle directory segue le convenzioni PEAR. Aggiungere o modificare un modulo (nel pattern MVC sarebbe chiamato controller) è piuttosto semplice: basta creare un albero delle directory simile ed includerlo prima di quello ufficiale (impostando include_path con PHP, apache o file di configurazione) in modo da poter sovrascrivere eventuali moduli ufficiali.

Ritiro del TiP

Anche se è stato usato con successo in più occasioni, il progetto è stato pianificato nel 2004. Doveva essere retrocompatibile con il PHP versione 4 per poter essere usato sulle piattaforme di hosting disponibili (l'aggiornamento da PHP 4 a 5 è stato molto lento). Gli stessi componenti PEAR faticavano ad aggiornarsi e molti di loro sono ancora progettati per PHP 4. In definitiva, il progetto soffriva di staticità ed è diventato di fatto obsoleto: TiP avrebbe bisogno di un make-up per evitare una morte d'inedia. Queste le limitazioni principali, elencate approssimativamente in ordine di gravità crescente:

  • l'astrazione della base dati è legata a MySQL
    Per includere tutte le informazioni del modello nel database, si fa ricorso pesantemente alle caratteristiche offerte da MySQL, rendendo l'attuale codice di fatto non portabile su altri server. Il supporto per altri database (PostrgreSQL o SQLite, per esempio) potrebbe essere aggiunto ricorrendo ad un ORM esterno.
  • non c'è routing degli URL
    Lo smistamento della richiesta è primitivo. In pratica ogni azione viene limitata allo schema modulo/azione/oggetto, con quest'ultimo opzionale.
  • supporto HTTP inesistente
    TiP non è restFUL. Nelle risposte non viene considerato il protocollo HTTP, ritornando sempre HTTP 200 OK anche quando la pagina non è presente o l'operazione richiesta non è stata eseguita.
  • non c'è comunità
    Attualmente, la eNTiDi è probabilmente l'unica ad usare il framework TiP e sicuramente l'unica a contribuire in termini di codice.

L'aggiornamento del TiP da PHP 4 a 5 richiede uno sforzo non indifferente. Tuttavia se ci fosse una forza lavoro adeguata, l'onere potrebbe essere ripartito poiché ogni singolo sviluppatore trarrebbe vantaggio dal risultato finale. Il problema principale è che il progetto TiP non ha una comunità di sviluppatori alle spalle e la gran quantità di framework opensource attualmente disponibili frammenta le già scarse possibilità di crearne una. Questo il motivo che ha spinto le eNTiDi a passare ad un CMS più diffuso che già dispone di una consistente comunità di sviluppatori.

eNTiDi logoeNTiDi software
Software per l'automazione industriale

via fossato, 56
 25038 Rovato (BS)

Telefono: 366 3206501
E-mail: ntd@entidi.it
PEC: entidi@mlcert.it

 Partita IVA: 02909410983