Saltar al contenido principal

🎯 Banco de Preguntas — Semi-Senior

Preguntas técnicas reales para posiciones Semi-Senior Full Stack .NET + React.

Diferencia clave

A este nivel, el "por qué" es tan importante como el "qué". Siempre explica los trade-offs de tu respuesta.


C# Avanzado

¿Cuándo deberías usar ValueTask<T> en lugar de Task<T>?

¿Qué constraint de generics debes usar para garantizar que T es una clase y tiene constructor sin parámetros?

¿Cuál es la diferencia principal entre record, class y struct en C# 9+?

¿Qué ventaja ofrece el switch expression con pattern matching en C# 8+ frente a un switch statement clásico?


Inyección de Dependencias

¿Cuál es el lifetime correcto para registrar un DbContext de Entity Framework en una API ASP.NET Core?

¿Qué es una 'captive dependency' (dependencia cautiva) en el contenedor de DI?

¿Cómo implementar el patrón Decorator para INotificationService usando el DI nativo de .NET sin librerías externas?


ASP.NET Core

¿En qué orden deben configurarse UseAuthentication y UseAuthorization en el pipeline de ASP.NET Core?

¿Cuándo deberías usar un IActionFilter en lugar de middleware en ASP.NET Core?

Para el endpoint [HttpPut("{id}")] public IActionResult Update(int id, UpdateDto dto), ¿de dónde infiere ASP.NET Core cada parámetro?

¿Cuál es una ventaja real y documentada de Minimal APIs sobre Controllers en .NET 6+?


Entity Framework Core

Tienes este código: var posts = context.Posts.ToList(); foreach (var post in posts) { var count = context.Comments.Count(c => c.PostId == post.Id); } ¿Qué problema tiene y cómo solucionarlo?

¿Cuándo es correcto y beneficioso usar .AsNoTracking() en Entity Framework Core?

¿Cómo se revierte la base de datos a una migración anterior llamada 'AddProductsTable' en EF Core?

¿Cómo envuelves múltiples operaciones de EF Core en una transacción explícita para garantizar atomicidad?


APIs REST

¿Cuál de estos verbos HTTP NO es idempotente según la especificación RFC 7231?

¿Cuál estrategia de versionado de API REST es generalmente más recomendada para APIs públicas?

Un usuario autenticado intenta acceder a un recurso que pertenece a otro usuario. ¿Qué código HTTP debe devolver tu API?

¿Cuál es la principal ventaja de cursor-based pagination sobre offset-based pagination en una API con datos que cambian frecuentemente?


Patrones de Diseño

¿Cuál es el propósito principal del Repository Pattern en una arquitectura de software?

¿Cuál de estas clases viola el Principio de Responsabilidad Única (SRP) de SOLID?

¿Cuándo el patrón Strategy es claramente preferible a una cadena de if/else o switch?

¿Qué problema arquitectónico resuelve principalmente MediatR en aplicaciones .NET?


Testing

¿Cuál es la definición correcta de un test de integración en el contexto de .NET?

En un unit test de OrderService que depende de IOrderRepository y IEmailService, ¿qué debes mockear?

¿Cuál es el orden correcto del ciclo Red-Green-Refactor en TDD?

¿Cuál es la forma recomendada de hacer integration testing de endpoints HTTP en ASP.NET Core?


React Avanzado

¿Cuál es la diferencia fundamental entre useCallback y useMemo en React?

¿Cuándo deberías preferir useReducer sobre useState en un componente React?

¿Qué problema de rendimiento puede causar el uso incorrecto de Context API en React?

¿Qué ventaja concreta ofrece React Query sobre el patrón useState + useEffect para fetching de datos?


SQL Avanzado

¿Qué devuelve exactamente ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC)?

¿Cuándo son preferibles las CTEs (WITH clause) sobre subqueries en SQL?

Para la query: SELECT * FROM orders WHERE status = 'active' AND created_date > '2024-01-01' ORDER BY user_id, ¿qué estrategia de índice es más óptima?


Docker

¿Cuál es el beneficio principal de un multi-stage build en un Dockerfile para una app .NET?

¿Cuál es la diferencia práctica entre COPY y ADD en un Dockerfile, y cuál deberías preferir?

¿Cuál es la diferencia conceptual entre una imagen Docker y un contenedor Docker?


TypeScript Avanzado

¿Cuál es la diferencia entre Partial<T> y Required<T> en TypeScript y cuándo usar cada uno?

¿Qué hace Pick<T, K> vs Omit<T, K> en TypeScript?

¿Qué son los Mapped Types en TypeScript y para qué sirven?

¿Cuándo deberías preferir interface sobre type en TypeScript, considerando declaration merging y extensión?


Performance del Frontend

¿Qué es el Code Splitting y cómo se implementa en React con React.lazy?

¿Cuál es la diferencia entre useMemo y useCallback en React?

¿Qué es el LCP (Largest Contentful Paint) y cuáles son las técnicas más efectivas para mejorarlo?

¿Por qué import _ from 'lodash' puede ser problemático para el bundle size y cómo solucionarlo?


Caché y Redis

¿Cuál es la diferencia entre Cache-Aside y Write-Through como estrategias de caché?

¿Cuándo deberías usar IMemoryCache vs IDistributedCache en .NET?

¿Para qué sirve el TTL (Time To Live) en Redis y qué problemas puede causar no configurarlo?

¿Qué es el cache stampede (thundering herd) y cómo se mitiga?


Autenticación Avanzada

¿Cuál es la diferencia entre OAuth 2.0 y OpenID Connect (OIDC)?

¿Por qué se recomienda el flujo PKCE para SPAs en lugar del flujo implícito (Implicit Flow) de OAuth 2.0?

¿Qué es el Refresh Token Rotation y por qué mejora la seguridad frente a refresh tokens estáticos?