Entornos y metodologías
Last updated
Last updated
El diccionario colaborativo estuvo ceñido a lineamientos definidos en el desarrollado en la Comisión de la Verdad. En este sentido, hereda la arquitectura y las tecnologías usadas para este desarrollo. Tenemos entonces los siguientes entornos:
Para el FRONTEND:
ReactJS; versión 16.13.1
Material-UI; versión 4.11.4
Para el BACKEND:
MongoDB; versión 5.0.3
NestJS; versión 7.1.5
Comunicación entre el frontend y el backend, se realiza a nivel de servicios REST (arquitectura web basada en el protocolo HTTP para mejorar las comunicaciones cliente-servidor). Las peticiones se hacen por GET, POST y PUT; en el caso del diccionario, no se usa DELETE.
Si, por ejemplo, se quiere añadir un campo semántico o modificar alguna variable se debe buscar, dentro del directorio del backend, el archivo semantic.controller.ts
, con el fin de agregar el campo primero a la estructura y luego modificar el frontend. Sin embargo, si la persona no es especialista no se recomienda modificar la estructura del backend, ya que allí se encuentra toda la configuración del núcleo y las conexiones.
Modelo atómico: bajo esta metodología se definen: páginas, organismos, moléculas y átomos, que luego pueden ser reutilizados en otros desarrollos. Todos los componentes del metabuscador desarrollado por la Comisión de la Verdad, usan esta misma estrategia con el fin de tener una estructura homogénea.
Programación Sprint Scrum:
Historias de usuario
Definición de tableros y actividades (sprints)
Planeación y seguimientos
Programación Scrum: se recomienda trabajar bajo la metodología de programación Sprint Scrum, dado que es una metodología que permite la articulación fácil y rápida de modelos simples y funcionales, los cuales pueden ir evolucionando con el feedback y las necesidades del cliente.
Bajo esta metodología estaremos en función de un desarrollo iterativo o incremental, el cual consiste en dividir el trabajo en pequeñas partes o bloques temporales (sprint). Al final de cada etapa se entrega una funcionalidad completa. Para estructurar la evolución se recomienda crear el Mínimo Producto Viable (Minimum Viable Product, MVP): producto con suficientes características para satisfacer a los clientes y proporcionar retroalimentación para el desarrollo futuro.
MVP: herramienta que permite aprender mientras se desarrolla. Gracias a la iteración, el producto evoluciona y se reduce el tiempo para la validación de nuevas ideas.
Estandarizar código: definir unas reglas de trabajo; es decir, estandarizar la manera en que se van a crear y llamar las funciones, los métodos, las variables, los atributos, etc. La normalización del código es fundamental para el mantenimiento óptimo del desarrollo.
Comentar el código: es una buena práctica comentar el código a fin de que se convierta en un texto legible, autoexplicativo y facilite las modificaciones y el mantenimiento.
Interacción con usuarios: es una buena práctica tener entrevistas previas con los usuarios del sistema; dichos encuentros permiten entender los requerimientos puntuales y las funcionalidades concretas sobre las que debe basarse el desarrollo. Además, se recomienda encontrar un lenguaje común entre lo técnico del sistema y el requerimiento del usuario, a fin de no generar reprocesos y lograr comunicar fácilmente las funcionalidades del sistema.
Arquitectura orientada a servicios: los desarrolladores crean los servicios que luego son consumidos por la aplicación; esto con el fin de reutilizar servicios para los distintos componentes que se van creando. Adicionalmente, permite una identidad misional para todos los desarrollos de la Comisión de la Verdad. Este desarrollo hereda la arquitectura del metabuscador.
Los archivos en los que se desarrolla el código de los formularios, se encuentran en el frontend en: