Sto cercando di comprendere il panorama dei diversi approcci e delle migliori pratiche sullo sviluppo di JavaScript complessi lato client.
Non sono sicuro di cosa etichettare questa classe di applicazioni, forse AJAX o RIA pesanti (ma non plugin come Flash / Silverlight). Mi riferisco alle app Web con queste caratteristiche:
- Emula UX desktop ricco / nativo in JavaScript
- Contiene la maggior parte / tutto il comportamento in JS sul lato client, utilizzando il server come API dati (modelli JSON / Html).
Ciò è in contrasto con l'utilizzo del web server per il rendering dell'interfaccia utente, producendo tutto l'HTML in un modello di aggiornamento della pagina.
Alcuni esempi sono:
- Google Docs / Gmail
- MindMeister
- Pivotal Tracker
Mentre avanziamo in HTML5, posso vedere questo stile di sviluppo RIA, con JavaScript pesante, che diventa sempre più comune e necessario per competere.
DOMANDA: Quindi quali sono gli approcci comuni che emergono nella gestione di questo tipo di pesanti sviluppi JS?
Il codice lato client, man mano che un'app cresce di funzionalità, è diabolicamente complicato. Ci sono problemi nel ridimensionare uno sforzo di sviluppo tra più team con JS crudo (o almeno così ho sentito, e posso ben crederci).
Google ha affrontato il problema costruendo GWT che si compila da un linguaggio di livello superiore (Java) a JS, appoggiandosi all'infrastruttura di sviluppo esistente che ha il linguaggio di livello superiore (Eclipse, strumenti di tipizzazione forte, refactoring), insieme ad astrarre la compatibilità del browser e altri problemi lontano dallo sviluppatore.
Ci sono altri strumenti, come Script # per C # che fanno qualcosa di simile. Tutto ciò mette JS di più nel ruolo di un IL (Intermediate Language). vale a dire. "Non scrivi più in quel" linguaggio di basso livello "."
Ma questa "compilazione in JS" non è l'unico approccio. Non è evidente che GWT sia l'approccio dominante ... o in effetti lo diventerà.
Cosa stanno facendo le persone con JavaScript rich-client? Alcune domande di orientamento:
- La maggior parte dei negozi produce manualmente JS (in cima a librerie come jQuery et al)?
- O ci sono molti approcci diversi, senza che emergano chiare migliori pratiche?
- La maggior parte dei negozi sta evitando lo sviluppo su scala RIA a favore del modello più semplice per gli sviluppatori lato server / ridisegno della pagina? Se è così, questo durerà?
- La compilazione per JS è forse una tendenza emergente futura? O è solo sbagliato?
- Come gestiscono la complessità e il refactoring del client JS?
- Modularizzazione e distribuzione del lavoro tra i team?
- Applicazione, applicazione e test di modelli lato client come MVC / MVP ecc.
Quindi, quali sono le tendenze emergenti in questo nostro futuro JavaScript e HTML5 pesante?
Grazie!