Ho una web app che mi piacerebbe ridefinire gradualmente aggiungendo una struttura.
Ho ristretto le opzioni a Backbone (con alcuni plugin), Ember.js e AngularJS
Il mio obiettivo è quello di refactoring di quell'app, che ha i soliti spaghetti jQuery e gradualmente aggiungere qualche struttura ad esso.
Requisiti
- non un framework "tutto o niente", ad es. consente di spostare gradualmente il codice da "prima" a "dopo" senza riscrivere l'app da zero (vincitore - Backbone?)
- qualcosa che ha un futuro, le persone sembrano entusiaste e hanno una grande compagnia dietro (Angular prende questo proiettile)
- Lasciami fare a volte cose "a modo mio" e non forzare un paradigma (Backbone un chiaro vincitore qui)
- Qualcosa che aumenterà davvero la mia produttività e rimuoverò la necessità di codice boilerplate (Angolare + Brace)
- Qualcosa che è buono non solo con le cose ovvie, ma anche le cose complesse, ad es. transizioni di animazione, modelli nidificati, gestione di viste di dialogo modali, supporto per trascinamento della selezione, sistema di widget ecc.
Un'opzione è diventare uno sviluppatore avanzato in tutti e 3 e poi l'altro è chiedere alle persone che hanno fatto qualcosa di simile
So che con Backbone posso fare tutto ciò che voglio, ma voglio sapere se non devo "fare attenzione" e mi chiedo se non mi sto perdendo non correndo il rischio di usare AngularJS / Ember.js
Domande
Quindi le mie domande specifiche, comprensibili, costruttive (per quanto possibile) sono:
- Angular / Ember è in grado di supportare il drag and drop senza piegarsi all'indietro?
- È possibile che entrambi questi framework supportino le transizioni animate?
- Quale di questi 2 framework è più facile "aggiungere" gradualmente e non riscrivere completamente le cose "a modo loro"
- Quale di questi ha un supporto migliore per NoSQL / modelli basati su documenti come in documenti simili a MongoDB (ad esempio un documento JSON piuttosto che un modello relazionale)
- Quale di questi ha migliorato il supporto per modelli complessi (simile al n. 4)
Sia Ember Data che Backbone-relazionale sembrano provenire da un paradigma di database relazionale, e mi chiedo se c'è qualcosa che può costruire un modello da una struttura ad albero multilivello / nidificato arbitraria senza dover definire un modello NoSQL in un relazionale come la struttura dei dati (ad esempio hasMany, appartiene invece di un solo documento simile a JSON).
Inoltre, non voglio smettere di usare JqueryUI perché non è fatto al 100% con la "modalità Ember" o la "modalità angolare", Backbone è davvero la mia migliore opzione? Le belle campane e i fischietti che vengono con Angular / Ember sono in un trade-off con flessibilità?
È una buona scelta architettonica utilizzare Angular o Ember per refactoring di una pasta di callback jQuery esistente con un approccio graduale e iterativo?