Template engine, smarty, ma sono utili su framework MVC?

domenica, marzo 1, 2009 14:00 scritto da neryo

Lo sviluppo web in questi ultimi anni ha introdotto notevoli migliorie sotto l’aspetto di progettazione e programmazione.. si e’ passati da uno sviluppo funzionale ad una programmazione completamente object oriented, si utilizzano ora sempre piu’ pattern di sviluppo basati sul concetto MVC, appoggiandosi a diversi framework php (codeigniter, cakephp, symphony, zend ecc ecc..), ottenendo codice piu’ organizzato e ben strutturato, quindi maggiore controllo e velocita’ di sviluppo, separazione logica ed estensibilita’, uno standard di sviluppo.. insomma molti vantaggi rispetto a quando si creavano files confusi di codice html innestati a query php, cicli e migliaia di controlli sparsi in tutte le pagine con includes di centinaia di funzioni di libreria poco organizzate.. che una volta fatti e poi lasciati nel dimenticatoio, quando bisognava modificarli poi diventava necessario fare un brainstorming per capire la logica con cui erano stati concepiti.. figuriamoci se il codice era sviluppato da qualcun altro che non usava i nostri schemi.

Ora come sappiamo, grazie al pattern MVC e ai framework opensource php si ha modo di organizzare il codice al meglio, separando completamente la logica applicativa dalla parte di modello di accesso ai dati del database e dalla parte di presentazione dei dati sulle viste.

Fino qua tutto bene e vedo solo dei vantaggi che non voglio ripetere, ma parliamo ora del ruolo dei template language.. smarty tpl per citarne uno.. che sono ormai spesso presenti nei CMS di ultima generazione e vengono spesso propinati per rendere la vita piu’ facile a chi progetta interfaccie web… Sinceramente fatico a capire che grossi vantaggi possono offrire questi pseudo linguaggi, che sono nati appunto per rendere la vita piu’ semplice a chi deve mettere le mani sulle viste, tentando di ridurre il gap tra gli sviluppatori, i web designer e i grafici.. questo nell’ottica di team di sviluppo medio grandi dove sono solitamente sono i web designer a mettere le mani sulla parte frontend dei layout.

Questi motori di template, in ambiente PHP così come in altri ambienti, sono delle classi che consentono ai grafici di interagire con il codice sviluppato dai programmatori senza per questo dover acquisire competenze specifiche sul linguaggio di programmazione utilizzato… questo e’ vero se si dimentica che il grafico invece di capire come estrapolare il codice da un array in php tramite un foreach, dovra’ imparare ad usare un linguaggio diverso con costrutti simili (foreach, loop) e non molto piu’ semplici, per poi fare la stessa cosa con un array di dati in smarty.

Quindi nell’ottica di utilizzo di un framework MVC che ha gia’ dentro il concetto di vista e gia’ separa adeguatamente la parte di presentazione dalle query al database e dalla logica applicativa, risulta inutile secondo me appoggiarsi a queste classi, che appesantiscono a livello prestazionale il codice per introdurre un nuovo linguaggio, che ha le medesime difficolta’ dal punto programmativo quando si maneggiano strutture dati semplici come array (ovvero quello che ci dovremmo trovare nelle viste).

Quindi quali sono i vantaggi nello scrivere codice delle viste in tpl? Cambia la sintassi, non sono piu’ semplici e bisogna imparare un nuovo linguaggio, si introducono nuove classi quindi piu’ righe di codice da eseguire rallentando le prestazioni del software e come ripeto se si lavora su framework MVC si ha gia’ una separazione logica delle viste, percui non ha senso neanche per la sepazione della business logic…

Li buttiamo a mare questi tpl?

1 Stella2 Stelle3 Stelle4 Stelle5 Stelle (4 voti, media: 3,00 di 5)
Loading ... Loading ...

6 Risposte a “Template engine, smarty, ma sono utili su framework MVC?”

  1. Valentino Aluigi dice:

    01-03-2009 alle 15:23

    si! buttiamoli a mare! ; )

    ho cominciato anni fa a sviluppare un mio CMS usando Smarty. all’epoca l’idea di permettere ai grafici di interfacciarsi in maniera più semplice mi sembrava ottima. no ho funzionato all’epcoa, e oggi non ha più senso. i webdesigner masticano PHP molto meglio dei linguaggi template. basta considerare il grande successo che ha avuto Wordpress tra i designer…

  2. Salvatore Miceli dice:

    02-03-2009 alle 14:04

    Assolutamente da cestinare!!! Gli attuali framework MVC separano già i la logica dalle view in maniera efficace senza ricorrere ad ulteriori e fastidiosi costrutti che fanno le stesse cose chiamandole semplicemente in maniera diversa.

  3. Michele Montemurro dice:

    13-03-2009 alle 10:46

    E’ da poco che sento parlare degli MVC. Premetto che programmo, in php, da più di 6 anni. Ne ho provate di tutti i colori ma ciò che è farina del proprio sacco non ha eguali. Questo è il mio modestissimo parere.

  4. admin dice:

    13-03-2009 alle 11:05

    Ciao Michele, mi permetto di replicare questa tua affermazione.. ;)
    utilizzare tecnologie migliori e che permettono di sviluppare su un livello applicativo più alto non significa far scendere il livello di gusto che può avere un programmatore nel realizzarle.. Poi, se partissimo sempre a realizzare applicazioni partendo da 0 o comunque da solamente il nostro background sicuramente non saremo più competitivi sul mercato.. torniamo a programmare in assembler? inutile reinventare sempre la ruota, inutile cercare soluzioni a problemi che sono già stati risolti e che sai sicuramente risolvere. Il framework ti da strumenti più potenti su cui basare applicazioni sicure e con classi testate e possibilmente bug free.. permettendoti di realizzare cose più complesse focalizzandoti sul problema reale dell’applicazione, senza dover affrontare ogni volta problemi su cui hai già sbattuto la testa in passato. MVC? significa ordine di progetto, standardizzazione di programmazione, controllo e maggiore estensibilità futura.. in ambito aziendale dove programmatori vanno e vengono, e in team diventa improponibile che ogni persona che prende in mano il codice si trova logiche diverse, soluzioni ideate sul momento, pezze..e dover spulciare query in mezzo all’html e php.. Nell’MVC se devo intervenire su una query vado nei modelli, se devo moficiare la logica vado nel controller, se devo modificare il layout vado nella relativa vista.. tutto separato..Dagli un occhiata, perchè mi pare di intuire che hai appena letto e non hai realmente approfondito l’argomento..

    a presto
    neryo

  5. Namaless dice:

    29-11-2009 alle 01:15

    Per come la vedo io è vero che il sistema MVC separa si i Modelli, i Controlli e le Viste ma non semplifica di tanto il design della vista.

    Mi spiego meglio: al momento in cui in una pagina hai molti links creati magari con helpers del tipo 'active')); ?>
    Sicuramente è una bella mazzata…

    Allora a questo punto non rimane che affidarsi a sistemi personalizzati del tipo:

    Naturalmente questa è solo una mia idea in quanto invece di utilizzare un sistema del genere sarebbe pure possibile fare:
    <a href="" class="">

    Per cui utilizzare un template engine avvolte risulta una buona idea.. dipende sempre dal gusto personale.. :-)

  6. Namaless dice:

    29-11-2009 alle 01:16

    Purtroppo inserendo il codice php si è perso un pò di cose… :-(

Lascia una commento

(*) campi obbligatori

Spam protection by WP Captcha-Free