Estoy tratando de comprender el panorama de diferentes enfoques y mejores prácticas, en torno al desarrollo de JavaScript complejo del lado del cliente.
No estoy seguro de qué etiquetar esta clase de aplicación, quizás AJAX o RIA pesadas (pero no complementos como Flash / Silverlight). Me refiero a aplicaciones web con estas características:
- Emular UX de escritorio rico / nativo en JavaScript
- Contiene la mayoría / todos los comportamientos en JS del lado del cliente, utilizando el servidor como una API de datos (Plantillas JSON / Html).
Esto contrasta con el uso del servidor web para la representación de la interfaz de usuario, que produce todo el HTML en un modelo de actualización de página.
Algunos ejemplos son:
- Google Docs / Gmail
- Mindmeister
- Rastreador Pivotal
A medida que avanzamos hacia HTML5, puedo ver este estilo de desarrollo RIA, con JavaScript pesado, cada vez más común y necesario para competir.
PREGUNTA: ¿Cuáles son los enfoques comunes que surgen en torno a la gestión de este tipo de desarrollos pesados de JS?
El código del lado del cliente, a medida que una aplicación crece en funciones, es endiabladamente complicado. Hay problemas para escalar un esfuerzo de desarrollo en varios equipos con JS sin formato (o eso escucho, y puedo creerlo).
Google ha abordado el problema mediante la creación de GWT que compila desde un lenguaje de nivel superior (Java) a JS, apoyándose en la infraestructura de desarrollo existente que tiene el lenguaje de nivel superior (Eclipse, herramientas de refactorización de tipado fuerte), junto con abstracción de compatibilidad del navegador y otros problemas lejos del desarrollador.
Hay otras herramientas, como Script # para C # que hacen algo similar. Todo esto pone a JS más en el papel de un IL (lenguaje intermedio). es decir. "Ya nunca escribes en ese 'lenguaje de bajo nivel'".
Pero esta 'compilación a JS' no es el único enfoque. No es aparente que GWT sea el enfoque dominante ... o de hecho lo será.
¿Qué están haciendo las personas con JavaScript de cliente enriquecido? Algunas preguntas orientadoras:
- ¿La mayoría de las tiendas elaboran JS manualmente (encima de bibliotecas como jQuery et al)?
- ¿O hay muchos enfoques diferentes, sin una mejor práctica clara emergente?
- ¿La mayoría de las tiendas están evitando el desarrollo a escala RIA a favor del modelo más simple para desarrolladores del lado del servidor / redibujado de página? Si es así, ¿durará esto?
- ¿Compilar a JS es quizás una tendencia futura emergente? ¿O esto está mal dirigido?
- ¿Cómo gestionan la complejidad y la refactorización del cliente JS?
- ¿Modularización y distribución del trabajo entre equipos?
- La aplicación, aplicación y prueba de patrones del lado del cliente como MVC / MVP, etc.
Entonces, ¿cuáles son las tendencias emergentes en nuestro futuro de JavaScript pesado y HTML5?
¡Gracias!