Backend Java
Backend Java
Java?
"Uno de los proyectos en los que trabajé fue la automatización del proceso de emisión
de pólizas. Antes, este proceso requería validaciones manuales y revisión de
información en distintas bases de datos. Lo que hicimos fue desarrollar un
microservicio que automatizaba estas validaciones y generaba la póliza en formato
PDF, enviándola automáticamente al banco. Para ello, utilizamos Spring Boot,
integraciones con APIs de terceros y generación de documentos con Apache PDFBox.
Esta solución redujo en un 40% el tiempo de emisión y minimizó errores humanos.
APIs RESTful: Son interfaces de programación que permiten que diferentes sistemas
se comuniquen a través de internet siguiendo las reglas de REST (Representational
State Transfer). Usan peticiones HTTP (GET, POST, PUT, DELETE) para intercambiar
datos.
Kafka lo usé para enviar eventos cuando una póliza se creaba. Spring Boot maneja la
producción y consumo de mensajes con Spring Kafka."
¿Cómo garantizabas la calidad y seguridad del código?
"Para garantizar la calidad del código, seguíamos buenas prácticas como TDD y
realizábamos revisiones de código en Bitbucket. Implementé pruebas unitarias con
JUnit y Mockito para validar la funcionalidad de los métodos, y pruebas de integración
con Spring Boot Test para verificar la comunicación entre componentes. En cuanto a
seguridad, aplicamos OAuth 2.0 y JWT para la autenticación de usuarios y protegimos
los datos sensibles antes de almacenarlos en la base de datos."
OAuth 2.0: Es un protocolo de autenticación que permite a las aplicaciones acceder a recursos
de un usuario sin necesidad de compartir su contraseña. Se usa en inicios de sesión con terceros,
como cuando entras a una web usando tu cuenta de Google o Facebook.
JWT (JSON Web Token): Es un formato de token seguro que se usa para la autenticación y el
intercambio de información entre partes. Contiene datos en un formato codificado y se usa
mucho en APIs para verificar la identidad del usuario sin necesidad de consultar la base de datos
en cada solicitud.
Redis es una base de datos en memoria que se usa como caché para acelerar el acceso a
datos frecuentes. Almacena información temporalmente, evitando consultas repetitivas.
"En mis proyectos con Java y Spring Boot, aplico SOLID para mantener el código
limpio, modular y fácil de mantener. Un ejemplo es cuando diseñé un servicio de
emisión de pólizas, donde apliqué el principio de Responsabilidad Única (SRP)
separando la lógica de negocio en una capa de servicio y la interacción con la base de
datos en una capa de repositorio. Además, utilicé Inversión de Dependencias (DIP)
inyectando repositorios con Spring Boot en lugar de instanciarlos directamente, lo que
facilitó la prueba y reutilización del código."
"Seguiría una arquitectura hexagonal en Spring Boot, con capas bien definidas
(controlador, servicio, repositorio). Utilizaría Spring Data JPA para la persistencia y
Exponer APIs REST con Spring Web."
"¿Qué patrones de diseño has aplicado en tus proyectos?"