Medir antes de optimizar

Performance

Core Web Vitals, carga, renderizado y estrategias prácticas para aplicaciones rápidas.

5 temas claveJunior → SeniorVersión 1
Progreso0%
0 de 5 dominados
★★★★★Mid → Senior🔥 Obligatorio

Core Web Vitals: LCP, INP y CLS

LCP mide carga percibida, INP capacidad de respuesta y CLS estabilidad visual. Deben observarse en datos reales, no solo laboratorio.

10–15 min
🟢 Base🟡 Entrevista🔴 Senior

Qué debes entender

LCP mide carga percibida, INP capacidad de respuesta y CLS estabilidad visual. Deben observarse en datos reales, no solo laboratorio.

Cómo funciona

Los percentiles de campo muestran experiencia de usuarios reales. Lighthouse ayuda a diagnosticar, pero no reemplaza RUM.

Ejemplo

LCP: imagen hero
INP: interacción lenta
CLS: banner que desplaza contenido

Pregunta típica

¿Qué optimizarías primero?

Respuesta Senior

Mediría datos de campo y segmentaría por ruta/dispositivo. Priorizaría el cuello con mayor impacto de usuario y negocio, no la métrica más fácil.

Repasar

Volver arriba ↑
★★★★★Mid🔥 Muy común

Code splitting y lazy loading

Code splitting divide bundles; lazy loading retrasa carga hasta que una ruta o función lo necesita.

10–15 min
🟢 Base🟡 Entrevista🔴 Senior

Qué debes entender

Code splitting divide bundles; lazy loading retrasa carga hasta que una ruta o función lo necesita.

Cómo funciona

Demasiados chunks producen overhead; el objetivo es reducir trabajo crítico sin crear waterfalls.

Ejemplo

const Settings = lazy(() => import("./Settings"));

Pregunta típica

¿Dónde pondrías límites de code splitting?

Respuesta Senior

En rutas y features pesadas con baja probabilidad inicial; mediría caché, waterfalls y experiencia de navegación.

Repasar

Volver arriba ↑
★★★★★Mid🔥 Alto impacto

Imágenes, fuentes y recursos críticos

Imágenes suelen dominar bytes y LCP. Formato, dimensiones, responsive images y prioridad importan.

10–15 min
🟢 Base🟡 Entrevista🔴 Senior

Qué debes entender

Imágenes suelen dominar bytes y LCP. Formato, dimensiones, responsive images y prioridad importan.

Cómo funciona

Reservar width/height evita CLS. preload y fetchpriority deben usarse solo para recursos realmente críticos.

Ejemplo

<img src="hero.webp" width="1200" height="600" fetchpriority="high" alt="" />

Pregunta típica

¿Por qué no lazy-load la imagen hero?

Respuesta Senior

Porque retrasa el recurso probablemente responsable de LCP. Lazy loading es para contenido fuera del viewport.

Repasar

Volver arriba ↑
★★★★★Senior🔥 Senior

Long tasks, memoization y virtualization

La performance runtime depende del trabajo en main thread. Memoización evita trabajo repetido; virtualización evita renderizar miles de nodos.

10–15 min
🟢 Base🟡 Entrevista🔴 Senior

Qué debes entender

La performance runtime depende del trabajo en main thread. Memoización evita trabajo repetido; virtualización evita renderizar miles de nodos.

Cómo funciona

Una long task bloquea input y paint. Dividir trabajo y reducir DOM suele aportar más que microoptimizaciones.

Ejemplo

render 10,000 rows → virtualize 30 visible rows

Pregunta típica

¿Memoización o virtualización?

Respuesta Senior

Memoización reduce recomputación; virtualización reduce cantidad de elementos. Para listas grandes, la segunda suele ser el cambio estructural de mayor impacto.

Repasar

Volver arriba ↑
★★★★★Senior🔥 Obligatorio

Medición y profiling

Optimizar sin medir puede mover el problema o añadir complejidad. Se necesita baseline, hipótesis, cambio y validación.

10–15 min
🟢 Base🟡 Entrevista🔴 Senior

Qué debes entender

Optimizar sin medir puede mover el problema o añadir complejidad. Se necesita baseline, hipótesis, cambio y validación.

Cómo funciona

Performance panel, React Profiler, bundle analyzer y RUM responden preguntas distintas.

Ejemplo

Baseline 2.4s → cambio → 1.7s

Pregunta típica

¿Cómo investigarías una pantalla lenta?

Respuesta Senior

Separaría red, scripting, layout y render; reproduciría, perfilaría, identificaría el camino crítico y validaría con métricas antes/después.

Repasar

Volver arriba ↑