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 4.10.0 / 5.x: Se debe emplear Mockito para la creación de objetos simulados (mocks) en las pruebas unitarias. La versión base mockito-core:4.10.0 se gestiona mediante el BOM Alpura 1.0.4.

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 / SLF4J: Se debe utilizar Log4j 2 / SLF4J 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+ y Bill of Materials (BOM Alpura 1.0.4): Se debe utilizar Maven como la herramienta de gestión de dependencias e importar obligatoriamente el BOM centralizado com.alpura:bom:1.0.4.

Justificación: El BOM 1.0.4 estandariza el proceso de construcción, gestión de dependencias y empaquetado de proyectos Java. Su sistema de gestión centralizada automatiza la inclusión de librerías transversales de Alpura y dependencias de terceros sin conflictos de versión.

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.