Pregunta de entrevista para Desarrollador frontend

Los usuarios reportan que la aplicación se vuelve más lenta cuanto más tiempo la dejan abierta. ¿Cómo lo rastrearías?

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

Ese patrón apunta a una fuga o a un crecimiento sin límite. Toma capturas del heap en DevTools en dos momentos tras el mismo flujo de usuario, compara tamaños retenidos y mira qué está reteniendo los nodos del DOM desprendidos. Las causas habituales son listeners y suscripciones que nunca se eliminan, temporizadores que siguen corriendo tras el desmontaje, cachés que nunca desalojan y closures que capturan objetos grandes. Se arregla desmontando todo lo que un componente creó.

Por qué lo preguntan los entrevistadores

El entrevistador quiere alguien metódico depurando, no alguien que adivina. Los problemas de memoria no se arreglan leyendo código, así que comprueban si conoces las herramientas: capturas del heap, líneas de tiempo de asignación, nodos desprendidos y el monitor de rendimiento. También sondea la disciplina de ciclo de vida, ya que casi todas las fugas en single page apps vienen de algo montado sin su limpieza correspondiente.

Cómo estructurar tu respuesta

  • Confirma el síntoma con una medición de memoria, no con una corazonada.
  • Describe la comparación de tres capturas sobre un flujo repetido.
  • Nombra los sospechosos habituales que revisas en el código.
  • Explica el patrón de solución: cada suscripción tiene su desmontaje.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

Primero confirmaría que es memoria y no otra cosa, así que dejaría abierto el monitor de rendimiento y repetiría el flujo que describen los usuarios, mirando el heap y los contadores de listeners y de nodos. Si suben y nunca bajan tras forzar una recolección, es una fuga. Luego tomo una captura del heap, ejecuto el flujo diez veces, tomo otra y comparo por tamaño retenido. Los nodos del DOM desprendidos son la pista, y la ruta de retención me dice qué los está sujetando. En la práctica casi siempre es algo montado sin su desmontaje correspondiente: un listener de resize o scroll en window, una suscripción a un socket, un intervalo o un observer que sobrevive al componente. Encontré uno donde una librería de gráficas añadía un listener por render y solo quitaba uno al desmontar, así que el contador crecía con cada navegación. El patrón de solución es aburrido pero eficaz: todo lo creado en un efecto devuelve su limpieza, y toda caché tiene un límite de tamaño en vez de crecer para siempre.

¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.

Mira cómo funciona

Preguntas de seguimiento que puedes esperar

  • ¿Qué es un nodo del DOM desprendido y cómo encuentras qué lo retiene?
  • ¿Cómo prevendrías esta clase de bug en la revisión de código?
  • ¿Cómo distingues una fuga de una caché que simplemente es grande?

Más preguntas para Desarrollador frontend

Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.

Predecir mis preguntas

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot