Backbone / JQuery, ExtJs 4 ... c'è qualcos'altro da guardare?

7

Attualmente sto valutando un'architettura front-end per una grande app che verrà sviluppata da un team di circa 6 sviluppatori + 1 web designer, così ho detto, avere una solida architettura SVN amichevole è un must. Finora sto valutando queste due opzioni:

  • Una combinazione di JQuery / UI / Mobile + Backbone / Underscore + richiede JS + Twitter-Bootstrap
  • ExtJS 4

Questi sono i requisiti che l'architettura deve soddisfare:

  • SVN Fiendly (o Friendly a seconda delle precedenti esperienze)
  • Comunità attiva e ampia documentazione
  • Extensible
  • Facile da imparare e da mantenere (bello avere)
  • Supporto cross-browser (almeno la maggior parte del tempo)
  • Supporto per dispositivi mobili
  • Facile manutenzione (MVC, MVVM)
  • OpenSource (bello avere)

Quelli precedentemente citati soddisfano la maggior parte dei requisiti in diversi livelli e finora sono gli unici che ho trovato, mi mancano altri?

    
posta Chepech 25.05.2012 - 16:38
fonte

3 risposte

7

Sono confuso dal tuo requisito SVN. Non ho mai sentito di un framework, uno strumento o una libreria JS che causa problemi per il controllo della versione. Solitamente sono solo file statici.

Lo strumento più importante in qualsiasi arsenale di front-end è uno strumento per eliminare i problemi dei crossbrowser e l'API DOM cruft all'origine. jQuery è una scelta eccellente su questo fronte.

jQ, si basa su una filosofia di progettazione che dovrebbe seguire tutto sul front end, IMO. Rimane fuori dalla tua strada quando lo vuoi fuori dalla tua strada e gioca bene con gli altri.

Tendo ad essere meno impressionato dalle librerie e dai plug-in di JQ ma lascerei quelle scelte ai tuoi sviluppatori.

EXTJS, è l'esatto opposto diametrale. È un framework pesante che è molto difficile da decodificare a causa di un ottuso schema di ereditarietà a cascata, fa cose terribili al DOM e getta CSS assolutamente a tutto, fino a ridefinire il CSS di ridimensionamento della scatola per TUTTO sulla pagina e aggiungendo gli ID a quasi tutto ciò che non ne ha già uno. Non consiglio EXT. Da un anno desideriamo togliere l'ultima traccia dalla nostra app, ma è stato troppo doloroso per dargli il giusto impegno nel tempo. Mi viene in mente che i ragazzi che volevano creare una libreria JS meno che open source hanno scritto la peggiore per goderne la popolarità.

La mia impressione di bootstrap è che si tratti di uno strumento di progettazione. Lascia che i tuoi sviluppatori e progettisti decidano se lo desiderano. I componenti JS che fornisce non sono niente di speciale ed è scritto da persone che gestiscono livelli di complessità decisamente inferiori a quelli che sembra abbiano intenzione di affrontare. Ciò che non mi piace è che si basa eccessivamente su attributi HTML non standard (ora considerati validi in HTML5, ma rendono ancora più difficile l'HTML da leggere nel mio libro) e si aggancia a classi predefinite che descrivono stili piuttosto che tipi di componenti o gerarchia dei contenuti. Va bene avere degli hook nell'HTML, ma trovo che sia meglio quando il framework o la libreria ti permettono di impostarli.

Non ho usato il backbone, ma è molto popolare. Il turn-off per me è stato vedere come descritto come un quadro di lock-in con il quale l'autore dell'articolo voleva dire che se decidessi di voler andare avanti e usare qualcosa di diverso, sarà difficile trasferire le tue funzionalità esistenti al di fuori di esso. Ho avuto troppi mal di testa di quella natura con lo smantellamento EXT per vederlo come un compromesso accettabile per qualsiasi beneficio.

Ciò che raccomanderei seriamente è che il team sul lato client venga assemblato per primo, quindi decidere gli strumenti nel contesto di ciò che si sta utilizzando nel back-end e quali sono gli esperti di front end che considerano una buona idea per la creazione un'app facilmente estensibile con codice scritto per lungo anziché a breve termine. Nonostante la pletora di architetture architettoniche JS, widget UI e librerie HTML pre-disegnate là fuori oggigiorno, la mia scelta personale, quando ho la possibilità, è di scrivere la mia interfaccia utente, e avvolgere la zuppa jQuery negli schemi di oggetti architettonici fai-da-te con facilità di implementazione e debug in mente. Inoltre, trovo che il pattern MVC mi piace più per i suoi principi generali che per l'implementazione esatta in un contesto strettamente lato client.

In uno scenario complesso di applicazioni front-end, qualsiasi strumento che produce componenti che non sono facili da modificare, imposta restrizioni o altrimenti inquina l'ambiente lato client nel suo complesso, o pone la prospettiva di renderlo davvero difficile da abbandonare il quadro in futuro è grande no-no nel mio libro. Ma prendilo con un barile di sale. Sono un po 'moccioso e difficile da accontentare quando si tratta dei miei strumenti, in parte perché ho dovuto sopportare alcuni veramente cattivi (CMS in particolare).

Alla fine della giornata però, nulla di cui sono a conoscenza ha la stessa flessibilità del fai-da-te (eccetto jQuery che in realtà elimina solo la piastra di interfaccia utente) ma assicurati di avere un team di sviluppo che può ottenere una sorta di architettura coerente oppure potrebbero essere meglio con backbone o knockout, o JS MVC.

    
risposta data 25.05.2012 - 22:52
fonte
3

Scrivo in ExtJS e uso stack Sencha dal 2008. Uso anche jQuery, YUI, Twitter Bootstrap e ho provato EmberJS. Adoro l'approccio basato su componenti promosso da Sencha. Crei la tua interfaccia utente da una serie di controlli già pronti. Metti i tuoi dati in modelli e legali usando i controller. Se si introducono livelli aggiuntivi come la gestione delle chiamate AJAX globale, l'elaborazione degli errori e i18n, hai una grande base per molti progetti. Quelli basati su CRUD come il pannello di amministrazione o il CRM possono essere eseguiti molto rapidamente. Ci sono alcuni dos e donts che dovresti tenere a mente, ma in generale ExtJS ti consente di essere molto efficiente. Tuttavia ci sono degli svantaggi significativi:

  • Utilizza DOM piuttosto pesanti. Nel browser moderno non importa molto, ma se si sta scrivendo per dispositivi, questo sarà pittorico. D'altra parte, è facile sovrascrivere, ad esempio, il metodo di Ext.Button che produce DOM e inserisce DIV al posto della struttura della tabella.
  • Non è così facile personalizzare l'aspetto. Abbiamo finito per creare il nostro set di overrides e mix SASS che usiamo nei progetti. Tuttavia, la creazione di tale fondazione richiede molto tempo, lo ammetto. Styling L'applicazione jQuery con DOM leggero e Bootsrap è più veloce e più semplice. Il rovescio della medaglia, se stai bene con temi comuni, non hai problemi e ottieni il tuo prodotto molto velocemente.
  • ExtJS è per i desktop. Sencha Touch è per dispositivi. Non è possibile creare un prodotto che funzioni bene sia per dispositivo che per desktop. Un buon approccio è usare Sencha Touch e lasciarlo scalare su desktop e tablet. Ma, ehi, ragazzi, l'approccio alle interfacce basate su touch e su click sono VERAMENTE differenti. Quindi sì, è un problema, ma avrai comunque questo problema: -)
  • ExtJS è grande. Sì, ma puoi personalizzare la build. Sarebbe comunque più grande di jQuery, ma può fare molto più di jQuery per te :-) Riduci a icona e servi da CDN e starai bene
  • I componenti personalizzati non sono facili da creare. Sì, se è necessario estendere i componenti ExtJS, di solito è veloce. Tuttavia, se hai bisogno di uno personalizzato o desideri modificare in modo significativo il componente esistente, avrai un mal di testa. Tuttavia, costruire un buon plugin jQuery che faccia qualcosa di utile è anche un dolore. Ho fatto entrambi i componenti per ExtJS e plugin per jQuery. Quando usi gli approcci giusti, entrambi sono abbastanza complessi, ma non posso dire che Ext sia più difficile.
  • ExtJS non ha un buon routing. Nessuna scusa per quello. La struttura moderna e l'app moderna dovrebbero fornirla.

In conclusione, direi che se la tua interfaccia utente è ampia, ma consiste in un componente che puoi trovare nella palette ExtJS e non hai bisogno di aggiornamenti di progettazione significativi, ExtJS è sicuramente la strada da percorrere. Se hai qualcosa di veramente personalizzato, ridimensionato da un telefono Android a uno schermo di macbook pro retina, usando controlli personalizzati e un aspetto completamente unico, prova jQuery, ma combinalo con strutture strutturali come EmberJS e con framework CSS / componente come Bootstrap. Dato che impari che lo stack è veramente buono, sarai abbastanza efficiente con quello.

E mai, mai, mai scrivere in jQuery con la mentalità di ExtJS e viceversa. Framework è un codice + filosofia dietro la sua architettura e il suo modo. Impara, seguilo e otterrai buoni risultati.

    
risposta data 18.11.2013 - 09:29
fonte
1

So che è un po 'tardi, ma per mantenere questo post aggiornato, penso che AngularJS dovrebbe essere elencato come uno le risposte. Preferisco un mix di jQuery e AngularJS e possibilmente Bootstrap / Angular-UI in base ai requisiti dell'interfaccia utente.

    
risposta data 07.10.2014 - 18:54
fonte

Leggi altre domande sui tag