Skip to content

Acta 4: Discusión de las tecnologías a utilizar

Francisco Coya Abajo edited this page Feb 13, 2023 · 1 revision

Reunión 4

Fecha de reunión

12 de febrero de 2023

Participantes

  • Miguel González Navarro (UO282337)
  • Francisco Coya Abajo (UO257239)
  • Oscar Abad López (UO258238)
  • Ricardo Marques Garay (UO270160)

Aspectos pendientes

  • Reparto de apartados de la documentación (Arc42) a completar.

Revisión de trabajos anteriores

  • Discusión acerca de las tecnologías a utilizar en el proyecto. Se especificarán más adelante en los ADR. Hemos tomado como punto de partida la issue #5

Breve resumen acerca de las tecnologías a utilizar

  • Lado cliente (Front-End) La tecnología seleccionada es el framework de JavaScript ReactJS. A continuación, presentaremos un resumen de sus ventajas e inconvenientes. Ventajas:

    • Actualización de componentes y vistas en tiempo real + hot reload (Actualización de componentes concretos sin refrescar la página).
    • Permite modularizar la interfaz de usuario en componentes, permitiendo la reutilización de estos últimos de forma independiente. Cada componente contará con sus propiedades (props).
    • En relación al punto anterior, permite una mayor precisión a la hora de crear los test (Véase los tests utilizando la librería Jest).

    Desventajas:

    • Documentación (oficial) bastante escueta, dificultando el aprendizaje inicial y la consecuente búsqueda en otras fuentes de información.
    • La curva de aprendizaje no es muy elevada pero tampoco llana. Es decir, se necesitan conocimientos medio-avanzados de JavaScript (Como destructuring, menejo de promesas y funciones asíncronas, spreads...)
  • Lado servidor (Back-End)

    La tecnología seleccionado en este caso es el framework NodeJS. Para su elección, hemos tenido en cuenta también el framework basado en Java 'SpringBoot', ya que lo estamos utilizando en otra asignatura y tenemos conocimientos básicos sobre éste.

Ventajas:

  • Creación de APIs más sencilla mediante la librería express.
  • Se integra con gestores de paquetes que contiene miles de librerías ya probadas y verificadas por la comunidad.
  • Gran comunidad y bastante documentación al alcance.
  • Se integra con SOLID. Ya existen librerías para ello. Comprobando la posible integración de SpringBoot (Java) u otros frameworks, hemos encontrado el este hilo donde se discute a través de la posible solución. Indagando un poco en la posible solución, creemos que no es trivial, en base al tiempo que tenemos para llevar a cabo el desarrollo de este producto.

Desventajas:

  • Es monohilo.
  • Para asegurar los tipos se recomienda el uso de TypeScript (Basado en JavaScript), lo que puede retrasar en nuestro caso el desarrollo.
  • La integración de asincronía en la API puede hacer el código inmantenible, dificultando así su complejidad.

Base de datos. PENDIENTE

Reparto (temporal) de 'roles' en el equipo

Hemos decidido separar el desarrollo del cliente para unos miembros del equipo y el desarrollo del servidor para otros. Por el momento, es una decisión provisional hasta confirmación. El reparto más detallado de cada miembro del equipo no se ha dejado claro.

Reuniones

Reuniones extraordinarias

Decisiones Arquitectónicas (ADR)

Clone this wiki locally