Actualizaciones en tiempo real sin necesidad de recargar el navegador.
Utilizado por grandes compañías como Instagram.
Manejo de estados internamente o utilizando librerías de terceros como Redux.
Curva de aprendizaje suave y comunidad creciente. Lo que implicar un desarrollo más rápido.
Los componentes se pueden probar.
Tiempos de respuesta altos (En producción, dependerá del servidor, a tener en cuenta).
Desventajas:
La documentación es bastante escueta.
Para algunos aspectos, es necesario conocimientos más avanzados de JS (Destructuring, spread, etc).
Back-End
Posibles opciones conocidas .
NodeJS mediante Express (JavaScript). Para crear una API Rest.
Ventajas:
Gestores de paquetes como npm o yarn que contienen librerías para mapas, logging en el servidor, entre muchas otras.
Single-thead. Es decir, utiliza poca memoria.
Gran comunidad. En mi opinión, se encuentra más documentación que con la opción 2.
Inconvenientes:
No es multihilo.
Si se desea tipado es necesario utilizar TypeScript.
SpringBoot (Java). Similar a cómo estamos haciendo en la asignatura SDI.
Ventajas:
Tipado seguro.
Muy modular, con módulos bastante probados.
Multihilo.
Inconvenientes:
La mayoría de proyectos SOLID están en NodeJS. He encontrado este hilo que a lo mejor nos puede ayudar.
Tiene una curva de aprendizaje mayor a NodeJS.
Para desplegar, las opciones que he encontrado (Sin investigar a fondo) ha sido AWS.
Documentación
Markdown, ya que se puede actualizar de forma fácil y rápida. AL integrarse con GitHub hace mucho más fácil la documentación en general.
Dudas
No sé si es necesario desplegar la aplicación en un servidor remoto (Tanto para la aplicación web como para la API Rest). Hay que tener en cuenta esto también.
Propuestas de tecnologías a utilizar
Necesitamos concretar las tecnologías a utilizar en el proyecto. Abro hilo para realizar las propuestas y llegar a un consenso.
Tecnologías impuestas
Front-End
ReactJS. Como framework de cliente.
Ventajas:
Desventajas:
Back-End
Posibles opciones conocidas .
NodeJS mediante Express (JavaScript). Para crear una API Rest.
Ventajas:
Inconvenientes:
SpringBoot (Java). Similar a cómo estamos haciendo en la asignatura SDI.
Ventajas:
Inconvenientes:
Documentación
Markdown, ya que se puede actualizar de forma fácil y rápida. AL integrarse con GitHub hace mucho más fácil la documentación en general.
Dudas
No sé si es necesario desplegar la aplicación en un servidor remoto (Tanto para la aplicación web como para la API Rest). Hay que tener en cuenta esto también.