Technology Stack - Solify-IT/psyche-ing GitHub Wiki
Technology Stack
Para este proyecto utilizamos el stack de desarrollo PERN.
-
PostgreSQL
-
¿Por qué?
-
Protege la integridad de datos.
-
Sistema de acceso de control robusto
-
Soporta caracteres internacionales
-
-
La arquitectura del sistema debe permitir el cambio sencillo y rápido de motor de base de datos en caso de ser necesario.
-
-
Express
-
¿Por qué?
-
Framework minimalista y flexible
-
Creación de APIs eficientes y robustas de una forma fácil y sencilla.
-
Permite el uso de middleware.
-
Facilita la creación de código de back-end.
-
-
-
React
-
¿Por qué?
-
Garantiza código estable.
-
Permite la reutilización de componentes. Ahorrando tiempo y esfuerzo.
-
Permite el uso de Virtual DOM, mejorando la experiencia de desarollo con herramientas como 'Hot Reload'
-
-
-
NodeJS
-
¿Por qué?
-
Permite funciones event-driven y funciones asíncronas.
-
Rápido, escalable, y extensible.
-
-
Después de hacer una discusión de departamento sobre la experiencia técnica de cada miembro, se decidió utilizar PERN debido a que varios tenían experiencia con Express o React. Además, utilizar el mismo lenguaje de programación para backend y frontend nos ayudará para hacer desarrollar el proyecto de una forma mas rapida y efectiva.
En el siguiente diagrama se puede visualizar la interacción que existe entre cada uno de los componentes que integran este stack de tecnologías.
Lenguaje de programación
El stack elegido puede utilizarse tanto con JavaScript o TypeScript. Se decidió utilizar TypeScript en backend y en frontend por las siguientes ventajas que esta tiene.
- Los tipos hacen que el manejo del código sea más fácil y depurable.
- La sintaxis es más fácil de leer y procesar para alguien externo.
- Es una tendencia confiable con mucho crecimiento y soporte.
Librerías
Adicionalmente, desde frontend utilizaremos las siguientes librerías de JavaScript:
- DataTables
- Chart.js
Las anteriores se utilizaran para poder generar y visualizar estadísticas dinámicamente de los datos que provienen del backend.