1/70
Colecci贸n de t茅rminos t茅cnicos sobre Programaci贸n Orientada a Objetos, Spring Boot, Microservicios, Bases de Datos, DevOps y Testing basados en Java.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Encapsulamiento
Ocultar el estado interno de un objeto y obligar a que todo acceso sea a trav茅s de m茅todos p煤blicos (getters y setters).
Herencia
Mecanismo que permite a una clase nueva adquirir las propiedades y m茅todos de una clase existente.
Polimorfismo
La capacidad de un objeto de tomar muchas formas, permitiendo que un mismo m茅todo act煤e de manera diferente seg煤n el objeto que lo ejecute.
Abstracci贸n
Enfocarse en qu茅 hace un objeto en lugar de c贸mo lo hace, ocultando los detalles complejos.
HashMap
Estructura de datos que no es segura para hilos (not thread-safe); si varios hilos lo modifican a la vez se rompe, pero es m谩s r谩pido.
ConcurrentHashMap
Estructura segura para hilos (thread-safe) que bloquea solo partes del mapa (segmentos) para permitir accesos simult谩neos sin perder rendimiento.
Interfaz funcional
Una interfaz que tiene exactamente un m茅todo abstracto y se usa como base para las expresiones Lambda; ejemplos incluyen Predicate, Function y Consumer.
Streams
Una secuencia de elementos que permite procesar colecciones de datos de forma declarativa (filtrar, mapear, transformar) sin modificar la fuente original.
Optional
Un contenedor que puede o no contener un valor no nulo, utilizado para evitar el NullPointerException de forma elegante.
== vs equals()
El operador == compara referencias de memoria en objetos, mientras que equals() compara el contenido o valor l贸gico de los objetos.
Checked vs Unchecked Exceptions
Las Checked (ej. IOException) son obligatorias de manejar por el compilador; las Unchecked heredan de RuntimeException y suelen ser errores de l贸gica del programador.
Spring Boot
Extensi贸n de Spring Framework que elimina la configuraci贸n pesada (boilerplate) mediante la filosof铆a de "convenci贸n sobre configuraci贸n".
Bean
Un objeto que es instanciado, ensamblado y administrado por el contenedor de Inversi贸n de Control (IoC) de Spring.
@Component
Anotaci贸n gen茅rica que le indica a Spring que una clase es un componente administrado para crear un Bean de ella.
@Service
Especializaci贸n de @Component que marca a la clase como parte de la capa de negocio o l贸gica.
@Repository
Especializaci贸n de @Component destinada a la capa de acceso a datos (DAO) que traduce autom谩ticamente excepciones de la base de datos a excepciones de Spring.
Inyecci贸n de Dependencias
Patr贸n de dise帽o donde un objeto no crea las clases que necesita, sino que Spring se las inyecta desde fuera.
@Autowired
Anotaci贸n que le pide a Spring buscar e inyectar autom谩ticamente la dependencia requerida en ese lugar.
@Configuration
Indica que una clase contiene m茅todos anotados con @Bean para definir configuraciones personalizadas del framework.
@Transactional
Asegura que un m茅todo se ejecute dentro de una transacci贸n de base de datos, realizando un rollback autom谩tico si algo falla.
Spring Actuator
Herramienta que expone endpoints como /health o /metrics para monitorear el estado y la salud de la aplicaci贸n en producci贸n.
Microservicio
Enfoque de arquitectura donde una aplicaci贸n se divide en servicios peque帽os, independientes, acoplados de forma laxa y comunicados por red.
API Gateway
Punto de entrada 煤nico para todos los clientes que se encarga del enrutamiento, autenticaci贸n, control de tr谩fico y balanceo de carga.
Service Discovery
Registro din谩mico (como Netflix Eureka) donde cada microservicio se registra para que los dem谩s sepan en qu茅 direcci贸n IP y puerto encontrarlo.
Circuit Breaker
Patr贸n que evita fallos en cascada; si un servicio falla repetidamente, el circuito se "abre" y devuelve una respuesta r谩pida de error o por defecto.
Resilience4j
Biblioteca ligera dise帽ada para sistemas distribuidos que implementa patrones como Circuit Breaker, Rate Limiter, Retry y Bulkhead.
Escalabilidad horizontal
Aumentar la capacidad del sistema a帽adiendo m谩s servidores o instancias a la infraestructura.
Observabilidad
Capacidad de entender el estado interno de un sistema mediante tres pilares: M茅tricas, Logs y Trazas (Traces).
Programaci贸n reactiva
Paradigma orientado al manejo de flujos de datos as铆ncronos y al cambio, dise帽ado para procesar eventos sin bloquear hilos de ejecuci贸n.
Mono
Publicador reactivo de la librer铆a Reactor que emite 0 o 1 elemento (o un error).
Flux
Publicador reactivo de la librer铆a Reactor que emite de 0 a N elementos.
No bloqueante
Significa que el hilo que inicia una operaci贸n no se queda esperando a que termine, liber谩ndose para otras tareas hasta que los datos est茅n listos.
Backpressure
Mecanismo que permite al consumidor decirle al proveedor cu谩ntos datos puede procesar a la vez para evitar saturarse.
Spring WebFlux vs Spring MVC
Spring MVC usa hilos bloqueantes (Tomcat), mientras que WebFlux se basa en bucles de eventos no bloqueantes (Netty).
Schedulers.boundedElastic()
Componente de programaci贸n reactiva que gestiona hilos para tareas que son bloqueantes.
REST
Estilo de arquitectura para sistemas distribuidos basado en el protocolo HTTP para la transferencia de datos.
OpenAPI
Especificaci贸n est谩ndar de descripci贸n de interfaz para APIs REST, escrita habitualmente en JSON o YAML.
Swagger
Conjunto de herramientas que implementan la especificaci贸n OpenAPI para generar documentaci贸n visual e interactiva.
OAuth2
Protocolo est谩ndar de la industria para la autorizaci贸n que permite acceso limitado a servicios de terceros sin compartir contrase帽as.
JWT (JSON Web Token)
Est谩ndar abierto para transmitir informaci贸n de forma segura como un objeto JSON inmutable y firmado digitalmente.
Autenticaci贸n vs Autorizaci贸n
La autenticaci贸n responde a "驴Qui茅n eres t煤?", mientras que la autorizaci贸n responde a "驴Qu茅 tienes permiso de hacer?".
CORS (Cross-Origin Resource Sharing)
Mecanismo de seguridad del navegador que bloquea peticiones desde dominios distintos al del servidor a menos que haya permiso expl铆cito.
Refresh Token
Token de larga duraci贸n usado para solicitar un nuevo Access Token cuando este ha expirado sin pedir credenciales al usuario.
JUnit
Framework est谩ndar en Java para escribir y ejecutar pruebas automatizadas, principalmente unitarias.
Mockito
Framework de simulaci贸n (mocking) usado para aislar la clase bajo prueba de sus dependencias reales mediante objetos simulados.
Mock
Objeto falso que imita el comportamiento de una dependencia real permitiendo programar sus retornos.
Prueba unitaria
Prueba automatizada que verifica el funcionamiento de una peque帽a pieza de c贸digo aislada sin interactuar con DB o redes.
Prueba de integraci贸n
Prueba que verifica que m煤ltiples componentes o sistemas interact煤an correctamente entre s铆.
Cobertura de c贸digo
M茅trica que indica el porcentaje de l铆neas de c贸digo ejecutadas por la suite de pruebas automatizadas.
TDD (Test-Driven Development)
Metodolog铆a donde se escribe primero la prueba (Rojo), luego el c贸digo para que pase (Verde) y finalmente se limpia el c贸digo (Refactorizar).
@InjectMocks
Anotaci贸n de Mockito que crea una instancia real de la clase a probar e inyecta en ella los objetos anotados con @Mock.
Docker
Plataforma de contenedores que empaqueta una aplicaci贸n con sus dependencias para asegurar que corra igual en cualquier m谩quina.
Kubernetes
Orquestador de c贸digo abierto para automatizar el despliegue, escalado y gesti贸n de aplicaciones en contenedores.
Pod
La unidad de ejecuci贸n m谩s peque帽a en Kubernetes que puede contener uno o m谩s contenedores compartiendo almacenamiento y red.
AKS (Azure Kubernetes Service)
Servicio administrado de Kubernetes en la nube de Microsoft Azure.
GitLab CI/CD
Herramienta que permite automatizar compilaci贸n, pruebas y despliegue mediante un archivo .gitlab-ci.yml.
SonarQube
Plataforma de an谩lisis est谩tico que inspecciona la calidad del c贸digo para detectar bugs, vulnerabilidades y deuda t茅cnica.
Fortify
Herramienta de seguridad para an谩lisis est谩tico y din谩mico (SAST/DAST) que busca vulnerabilidades cr铆ticas en el c贸digo.
Artifactory
Gestor de repositorios de artefactos binarios que almacena librer铆as (.jar) o im谩genes Docker de forma segura.
Azure Key Vault
Servicio en la nube de Azure para almacenar secretos (claves de API, contrase帽as) de forma segura.
INNER JOIN vs LEFT JOIN
INNER JOIN devuelve filas con coincidencias en ambas tablas; LEFT JOIN devuelve todas las de la izquierda y las coincidentes de la derecha o NULL.
脥ndice SQL
Estructura de datos que mejora la velocidad de b煤squeda a costa de espacio adicional y escrituras m谩s lentas.
Clave primaria
Campo que identifica de forma 煤nica e irrepetible a cada fila de una tabla y no permite valores nulos.
ACID
Propiedades de una transacci贸n: Atomicidad (Todo o nada), Consistencia, Isolation (Aislamiento) y Durabilidad.
Deadlock
Situaci贸n de bloqueo mutuo donde dos transacciones retienen recursos que la otra necesita, esperando infinitamente.
Execution Plan
Ruta detallada que el motor de la base de datos decide seguir para ejecutar una consulta SQL de la forma m谩s 贸ptima.
Feign Client
Cliente HTTP declarativo de Netflix integrado en Spring Cloud para llamar a APIs REST mediante interfaces Java.
Quarkus
Framework de Java optimizado para Kubernetes que destaca por bajo uso de memoria y arranque instant谩neo mediante compilaci贸n nativa (GraalVM).
Patr贸n Saga
Patr贸n arquitect贸nico que gestiona la consistencia de datos en microservicios mediante transacciones locales y acciones de compensaci贸n.
Orquestaci贸n vs Coreograf铆a
En orquestaci贸n un componente central dirige el proceso; en coreograf铆a cada microservicio reacciona aut贸nomamente a eventos (ej. Kafka).
Eventos de dominio
Acontecimientos del negocio que interesan registrar o reaccionar a ellos, como PedidoCreado o PagoRechazado.