Skip to main content

Lineamientos | Stack Tecnológico

Los servicios Java desarrollados para Alpura deberán seguir el siguiente Stack tecnológico.

Tech Stack

Los siguientes lineamientos de arquitectura se basan en los componentes seleccionados:

1. Marco de Desarrollo Principal:

info

Spring Boot 3.4.4: Es el marco base para el desarrollo de servicios java.

Justificación: Spring Boot proporciona una configuración rápida y sencilla, reduce significativamente la cantidad de código boilerplate y ofrece una amplia gama de características integradas (servidor embebido, gestión de dependencias, etc.). Promueve la consistencia y acelera el desarrollo, permitiendo al equipo enfocarse en la lógica de negocio en lugar de la infraestructura.

2. Entorno de ejecución y desarrollo Java:

info

Java JDK 21 (TEMURIN by ADOPTIUM 21.0.6 - LTS): Se debe utilizar la última versión LTS (Long-Term Support) del Java Development Kit.

Justificación: Adoptar la última versión LTS garantiza el acceso a las últimas funcionalidades del lenguaje, mejoras significativas en el rendimiento y actualizaciones de seguridad críticas durante un período extendido. Esto asegura la longevidad y la robustez de la aplicación a largo plazo.

3. Desarrollo capas Web:

info

Spring Web: Se debe emplear el módulo Spring Web para la construcción de APIs RESTful y aplicaciones web.

Justificación: Spring Web ofrece un marco robusto y flexible para el desarrollo de aplicaciones web y APIs. Su integración con el ecosistema Spring facilita la gestión de solicitudes, el manejo de datos, la seguridad y otras funcionalidades esenciales. Adherirse a los principios de diseño de APIs REST con Spring Web asegura la escalabilidad, la interoperabilidad y la facilidad de consumo de los servicios desarrollados.

4. Persistencia de Datos:

info

Spring Data JPA: Se debe utilizar Spring Data JPA para simplificar la interacción con la base de datos.

Justificación: Spring Data JPA abstrae la complejidad de la capa de acceso a datos, permitiendo a los desarrolladores interactuar con las bases de datos a través de interfaces de repositorio con mínima codificación. Esto reduce el boilerplate, mejora la legibilidad del código y facilita el cambio entre diferentes proveedores de bases de datos si fuera necesario.

5. Optimización y Boilerplate:

info

Lombok 1.18.36: Se debe integrar Lombok para reducir la cantidad de código boilerplate (getters, setters, constructores, etc.).

Justificación: Lombok simplifica el desarrollo al eliminar la necesidad de escribir manualmente código repetitivo. Esto resulta en un código más limpio, conciso y fácil de mantener, reduciendo la posibilidad de errores humanos y mejorando la productividad del equipo.

6. Pruebas Unitarias:

info

JUnit 5.9.1: Se debe utilizar JUnit 5 como el marco principal para la escritura y ejecución de pruebas unitarias.

Justificación: Las pruebas unitarias son fundamentales para asegurar la calidad y la fiabilidad del código. JUnit 5 proporciona un conjunto de herramientas potente y flexible para escribir y ejecutar pruebas de forma eficiente, permitiendo la detección temprana de errores y facilitando la refactorización segura del código.

7. Mocking:

info

Mockito 5.16: Se debe emplear Mockito para la creación de objetos simulados (mocks) en las pruebas unitarias.

Justificación: Mockito facilita el aislamiento de las unidades de código durante las pruebas unitarias al permitir la simulación de dependencias externas. Esto hace que las pruebas sean más rápidas, deterministas y enfocadas en la lógica específica de la unidad bajo prueba, mejorando la precisión de las pruebas y la identificación de problemas.

8. Logging:

info

Log4j 2: Se debe utilizar Log4j 2 como la librería de logging para registrar información relevante sobre la ejecución de la aplicación.

Justificación: Un sistema de logging robusto es esencial para el monitoreo, la depuración y el diagnóstico de problemas en la aplicación, especialmente en entornos de producción. Log4j 2 ofrece un rendimiento superior y una gran flexibilidad en la configuración de los formatos de log, los destinos y los niveles de severidad, lo que permite obtener información detallada y útil sobre el comportamiento de la aplicación.

9. Gestión de Dependencias y Construcción:

info

Maven 3.8: Se debe utilizar Maven como la herramienta de gestión de dependencias y construcción del proyecto.

Justificación: Maven estandariza el proceso de construcción, gestión de dependencias y empaquetado de proyectos Java. Su sistema de gestión de dependencias automatiza la descarga y la inclusión de las librerías necesarias, evitando conflictos y facilitando la colaboración entre los miembros del equipo. Además, su ciclo de vida de construcción bien definido asegura la consistencia en el proceso de desarrollo.

La adopción obligatoria de estos componentes y la adhesión a estos lineamientos de arquitectura son cruciales para construir una aplicación Java moderna, robusta, mantenible y de alta calidad. Esta estandarización facilitará la colaboración, reducirá la complejidad y asegurará la consistencia en todo el ciclo de vida del desarrollo del software.