Quali sono i vantaggi e gli svantaggi dell'utilizzo di modelli html rispetto alla creazione del codice in html [chiuso]

3

Per quanto posso vedere ci sono due modi per costruire una pagina html: "dentro" il linguaggio (lo chiamerò building per mancanza di un nome migliore) o al di fuori della lingua ( usando i modelli). Lascia che ti spieghi un po 'cosa significa con questo prima di saltare alle domande.

Edificio

Un modo è quello di costruire la pagina html "dentro" la lingua che stai usando, utilizzando preferibilmente costrutti linguistici (non solo concatenando stringhe), e convertendo questi costrutti in html in un ultimo passaggio.

Un ottimo esempio di ciò è la libreria hiccup di Clojure, che usa il Mappe e vettori del clojure per rappresentare l'html. Questo permette di usare il pieno potere della lingua in cui si lavora per manipolare queste strutture.

Templating

Il secondo modo è scrivere l'html separatamente dal programma principale e utilizzare una sorta di modello DSL per inserire la logica nei modelli. Il pacchetto hamlet per Haskell è un esempio di questo.

Ora la mia domanda è : quali sono altri vantaggi e svantaggi di entrambi gli approcci?

Mi piacerebbe avere più familiarità con questi concetti in modo da fornire indicazioni agli articoli ecc. sono più che benvenuti Inoltre, per favore mi informi se lì è un altro approccio a cui non pensavo.

Riepilogo delle risposte finora

Pro templating

  • È più semplice separare la vista dal resto del codice. Il codice sarà più facile da mantenere ed eviterai di mescolare la logica di business con il resto del tuo codice.
  • Questo approccio è generalmente molto più accessibile alle persone con meno competenze tecniche.

Con templating

(nessuno fino ad ora)

Pro building

  • Linguaggi funzionali, semplifica la scrittura di codice dichiarativo in modo nativo, quindi non è richiesto un linguaggio modello.
  • Puoi ottenere tutta la potenza e la flessibilità del tuo linguaggio di programmazione e ottenere comunque i vantaggi di una sintassi dichiarativa.

Costruzione di Con

  • I progettisti / i client non funzionano correttamente nella lingua di logica preferita.
  • Si riduce ancora a codificare la pagina in codice solo per quello non è un codice modello separato.
  • Ha più potenza, che potrebbe essere usato impropriamente. Devi fare molta attenzione
    per separare il codice di visualizzazione e la logica aziendale.
  • In casi ideali è più veloce però.
posta romeovs 06.04.2014 - 19:46
fonte

4 risposte

4

I linguaggi del modello forniscono una sintassi dichiarativa, che è molto meno soggetta a errori per questo particolare caso d'uso di una sintassi imperativa. In altre parole, stai specificando il risultato finale piuttosto che le istruzioni passo passo su come crearlo. Ecco perché i linguaggi template sono così popolari quando il back-end è scritto in una lingua più imperativa.

D'altro canto, i linguaggi funzionali, specialmente nella famiglia Lisp, rendono molto facile scrivere in modo nativo il codice dichiarativo, quindi non è richiesto un linguaggio template. Puoi ottenere tutta la potenza e la flessibilità del tuo linguaggio di programmazione e ottenere comunque i vantaggi di una sintassi dichiarativa.

Tuttavia, se hai più potenza, ciò ti induce ad usarlo in modo inappropriato. Devi fare molta attenzione a separare il codice di visualizzazione e la logica di business, altrimenti ti ritroverai con qualcosa di molto difficile da mantenere.

L'altro enorme inconveniente è che alcuni dei migliori designer non sono dei bravi programmatori. Persino molti buoni programmatori orientati agli oggetti si perdono nei linguaggi funzionali. Se vuoi lavorare con quei designer senza un flusso di lavoro in cui passano sempre un file HTML a un programmatore per la trascrizione, allora probabilmente vorrai rimanere con un linguaggio modello dedicato.

    
risposta data 07.04.2014 - 14:58
fonte
1

Se lavori con un team, è molto utile usare un modello e scomporre l'html dal codice. Separando i due, diverse persone possono lavorare contemporaneamente senza interferire.

È anche bello lavorare con imprenditori o dipendenti con competenze diverse. OEM è il nostro prodotto per i clienti e questo consente una maggiore libertà di personalizzazione.

    
risposta data 06.04.2014 - 22:07
fonte
1

In ogni caso è una buona idea interrompere la rappresentazione dai dati. Non è chiaro in modo esplicito dalla tua domanda se questo è quello che vuoi, ma la mia ipotesi è che è quello che stai indicando.

Non ho familiarità con le esatte implementazioni che hai menzionato, ma in generale può essere gestito come segue:

  • Se fai il tuo, allora hai più controllo su come gestisci i tuoi input. Negli esempi di Clojure viene mostrato che fa qualche pre-formattazione per te, ma a giudicare dagli esempi si riduce ancora a codificare la pagina in codice, con alcuni campi flessibili per una gestione delle risposte più semplice e coerente. È ancora qualcosa che richiede qualche abilità. In casi ideali è più veloce però. Il rovescio della medaglia è che è molto più allettante intrufolarsi nel codice che dovrebbe essere separato dalla tua rappresentazione, dissolvendo la distinzione tra i due.
  • Se si utilizza un motore di template true, la pagina diventa dati interpretati prima di essere mostrati. È qualcosa che può essere memorizzato come dati e che è indipendente dal resto del progetto, salvo per gli hook di codice che hai definito nei dati. Questi hook devono corrispondere al codice che hai reso disponibile. Questo approccio è generalmente molto più accessibile alle persone con meno competenze tecniche, purché sappiano come interfacciarsi con il tuo codice. (vedi come imparare a usare una nuova versione di HTML vs imparare come programmare in un linguaggio funzionale) Perché questo approccio richiede più interpretazione, può essere più lento.

    Generalmente preferisco il secondo approccio, in quanto ti costringe a una separazione molto più netta tra codice e rappresentazione. Questo ti costringe a considerare attentamente quello che stai facendo. Penso che porti a un design migliore in generale.

        
  • risposta data 06.04.2014 - 23:29
    fonte
    0

    Quando si parla di generare ("costruire") HTML rispetto al linguaggio template, mi viene sempre in mente una cosa: separazione delle preoccupazioni, ovvero separazione della rappresentazione ("vista") dalla logica aziendale.

    Sono sempre favorevole all'utilizzo dei linguaggi template:

    • È più semplice separare la vista dal resto del codice. Il codice sarà più facile da mantenere ed eviterai di mescolare la logica di business con il resto del codice.
    • I progettisti conoscono spesso un linguaggio modello, ma pochi progettisti conoscono Clojure o Haskell.
    • I linguaggi dei template sono spesso molto facili da imparare e molto bravi a creare il livello di presentazione.

    Costruendo HTML nel codice puoi sicuramente essere più flessibile e utilizzare tutta la potenza del linguaggio, ma dovrai stare più attento a non mescolare la logica di business e il codice di presentazione.

    Per confrontarlo con altre (lingue non funzionali): Microsoft ha creato XAML come lingua per creare il livello di presentazione (WPF, Silverlight) e sempre consigliato l'uso di XAML (non code-code per creare elementi).

        
    risposta data 07.04.2014 - 16:08
    fonte

    Leggi altre domande sui tag