Voy a comenzar un proyecto paralelo para construir una aplicación web de "página única". La aplicación debe estar en tiempo real, enviando actualizaciones a los clientes a medida que ocurren los cambios.
¿Existen buenos recursos para los enfoques de mejores prácticas para la arquitectura de este tipo de aplicaciones? El mejor recurso que he encontrado hasta ahora es el artículo de arquitectura de trello aquí: http://blog.fogcreek.com/the-trello-tech-stack/
Para mí, esta arquitectura, aunque es muy sexy, probablemente esté sobre diseñada para mis necesidades específicas, aunque tengo requisitos similares. Me pregunto si necesito molestarme con un sub / pub en el lado del servidor, ¿no podría simplemente enviar actualizaciones del servidor cuando sucede algo (por ejemplo, cuando el cliente envía una actualización al servidor, escribe la actualización en el db, y luego enviar una actualización a los clientes).
En cuanto a la tecnología, probablemente esté tratando de construir esto en Node.JS o tal vez Ruby, aunque las pautas de arquitectura deberían aplicarse en cierta medida a cualquier tecnología de servidor subyacente.
fuente
Probablemente iría con un framework MV * javascript para el front-end. Yo mismo estoy creando una aplicación web de una sola página y después de investigar una serie de soluciones, terminé con Backbone.js. Descubrí que si bien esta solución no proporcionaba la mayor funcionalidad inmediata, sí me proporcionó una base básica para comenzar y es mucho más flexible que otras soluciones que miré (lo que era importante para mí).
Otras soluciones populares son Ember.js y Knockout.js, que proporcionan más funciones listas para usar; sin embargo, debe seguir sus convenciones para utilizar la funcionalidad de THT (que puede o no funcionar para usted).
fuente
Esta es una obviedad IMO. AngularJS para el front end porque es increíble. NodeJS / express / SocketIO para un backend dinámico y sexy con bondad de pub / sub y un mínimo de alboroto. ¡Y como beneficio adicional, puede usar un idioma para el frente y la parte posterior!
Vea mi implementación del mismo https://github.com/hackify/hackify-server para ver un ejemplo
Una advertencia, algunas personas recomiendan una alternativa NodeJS a socketio llamada sockjs, pero no lo he comprobado, así que no puedo recomendarlo
fuente
Parece que lo que está viendo es Apache 2.2 con servidor de aplicaciones PHP o Tomcat con un servlet simple que maneja las solicitudes. Es el equivalente del carpintero de martillo y clavos. Nada complicado pero hace el trabajo. Si alguna vez necesitara ampliar la funcionalidad, siempre podría hacerlo, ya que Tomcat puede admitir jsp y jsf si alguna vez lo necesitara.
Para lo que concierne al front end, me sentiría cómodo simplemente usando jQuery ( $ .post , $ .load , $ .ajax ) ya que es bastante útil duplicarlo como un medio para agregar funcionalidad a su página en combinación con jQuery UI
fuente
Si desea actualizaciones de clientes en tiempo real, deberá implementar las llamadas "AJAX" de bloqueo prolongado o, preferiblemente, utilizar los sockets web modernos. Estos le permiten enviar actualizaciones a un cliente conectado que será manejado por un poco de javascript.
Entiendo que el estado actual de la técnica (o la última moda) es AngularJS de Google. Está diseñado en parte para facilitar la escritura de SPA.
fuente
Si desea algo cercano a la pila media (node.js, mongo ...) para construir una aplicación de una sola página que necesita ser reactiva, elegiría meteorito . Especialmente si está construyendo un prototipo y comenzando desde cero.
Los rieles con una interfaz angular serían una buena opción en mi humilde opinión, pero será más difícil "enviar actualizaciones a los clientes a medida que se produzcan los cambios", ya que necesitaría instalar gemas específicas, unir algunas bibliotecas de sondeo largo o sockjs. .
fuente