Sto cercando di capire il panorama dei diversi approcci e le migliori pratiche, attorno allo sviluppo di complessi JavaScript lato client.
Non sono sicuro su cosa etichettare questa classe di applicazioni, forse AJAX pesante o RIA (ma non plug-in come Flash / Silverlight). Mi riferisco alle app web con queste caratteristiche:
- Emulazione di UX desktop ricco / nativo in JavaScript
- Contiene il comportamento più / tutto nel JS lato client, utilizzando il server come un'API dati (modelli JSON / Html).
Questo è 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 Documenti / Gmail
- MindMeister
- Tracker pivotal
Mentre andiamo avanti in HTML5, posso vedere questo stile di sviluppo RIA, con JavaScript pesante, diventare sempre più comune e necessario per competere.
DOMANDA: Quindi quali sono gli approcci comuni che emergono nella gestione di questi tipi di pesanti sviluppi JS?
Il codice lato client, mano a mano che l'app cresce nelle funzionalità, è diabolicamente complicato. Ci sono problemi nel ridimensionare uno sforzo di sviluppo su più team con raw JS (o così ho sentito, e posso crederci).
Google ha affrontato il problema costruendo GWT che compila da un linguaggio di livello superiore (Java) a JS, appoggiandosi all'infrastruttura di sviluppo esistente che ha il linguaggio di livello superiore (Eclipse, strong-typing, refactoring tools), insieme all'astrazione compatibilità con il browser e altri problemi lontani dallo sviluppatore.
Ci sono altri strumenti, come Script # per C # che fanno qualcosa di simile. Tutto ciò mette JS più nel ruolo di un IL (Intermediate Language). vale a dire. "Non scrivi mai più in quel" linguaggio di basso livello ".
Ma questo 'compile to JS' non è l'unico approccio. Non è chiaro che GWT sia l'approccio dominante ... o addirittura lo diventerà.
Che cosa fanno le persone con JavaScript rich-client? Alcune domande orientative:
- La maggior parte dei negozi crea manualmente JS (su librerie come jQuery et al)?
- O ci sono molti approcci diversi, senza che emergano chiare migliori pratiche?
- La maggior parte dei negozi evita lo sviluppo di scala RIA a favore del modello più semplice per sviluppatore lato server / pagina di ridisegno? Se è così, durerà?
- La compilazione di JS è forse una tendenza futura emergente? 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 heavy-JavaScript e HTML5?
Grazie!