Las 10 preguntas y respuestas más importantes sobre la entrevista de diseño del sistema (Actualizado para 2019)

Tabla de contenido:

Anonim

Introducción a las preguntas y respuestas de la entrevista de diseño del sistema

El diseño del sistema es el procedimiento para definir los elementos de un sistema, como la arquitectura, los componentes y los módulos, las diversas interfaces de esos componentes y las estadísticas que atraviesan ese sistema. A través de la ingeniería de un sistema lógico y efectivo, se pretende satisfacer los requisitos y necesidades específicos de una empresa u organización. Implica un enfoque organizado para el diseño de un sistema. Se necesita un enfoque ascendente o descendente para considerar todas las variables relacionadas del sistema. Los lenguajes de modelado son utilizados por un diseñador para transmitir los datos y el conocimiento en una estructura de un sistema que se define mediante un conjunto compatible de reglas y definiciones. Los diseños se pueden describir en lenguajes de modelado textuales o gráficos.

Algunos ejemplos de lenguajes de modelado gráfico son:

  • Lenguaje de modelado unificado (UML): describe el software tanto de manera conductual como estructural con notación gráfica.
  • Notación de modelado de procesos de negocio (BPMN): se utiliza para el modelado de procesos
  • Lenguaje de modelado de sistemas (SysML): se utiliza para la ingeniería de sistemas.
  • Diagrama de flujo: una representación simbólica o gradual de un algoritmo.

¿Qué se debe anticipar en una entrevista de diseño del sistema?

Dicha entrevista normalmente comienza con un problema muy abierto, como diseñar su propia red social (como Facebook, Twitter). A medida que avanza la discusión, el entrevistador agregará restricciones o suposiciones adicionales para reducir el alcance del problema.

Para abordar estas preguntas, las cosas que le ayudan a practicar son tener un enfoque estructurado.

Ahora, si está buscando un trabajo relacionado con el diseño del sistema, debe prepararse para las preguntas de la entrevista de diseño del sistema 2019. Es cierto que cada entrevista es diferente según los diferentes perfiles de trabajo. Aquí, hemos preparado las preguntas y respuestas importantes de la entrevista de diseño del sistema que lo ayudarán a tener éxito en su entrevista.

En este artículo de Preguntas de la entrevista de diseño del sistema de 2019, presentaremos las 10 preguntas más importantes y frecuentes de la entrevista de diseño del sistema. Estas preguntas se dividen en dos partes son las siguientes:

Parte 1: preguntas de la entrevista de diseño del sistema (básico)

Esta primera parte cubre preguntas y respuestas básicas de la entrevista de diseño del sistema

Q1) ¿Diseña TinyURL o bit.ly (un servicio de acortamiento de URL)?

Responder:
Presente primero las funciones que el sistema debería admitir. En segundo lugar, obtenga los números estimados de cuán escalable puede ser el sistema.

Al diseñar un servicio, hay tres cosas a considerar:

  • API (REST API): enfoque de comunicación del cliente con el servicio junto con un equilibrador de carga que es el front-end del servicio.
  • Capa de aplicación: subprocesos de trabajo o hosts que toman la URL y generan la pequeña URL para ella y la almacenan en la capa de persistencia.
  • Capa de persistencia: base de datos

Cosas para analizar:

  • Genere una identificación única para cada URL y genere identificaciones a escala, ya que cada segundo se producen miles de solicitudes de acortamiento de URL.
  • El servicio maneja las redirecciones.
  • Admite URL personalizadas.
  • Seguir estadísticas de clics
  • Eliminar URL caducadas

2) ¿Diseña YouTube / Netflix (un servicio global de transmisión de video)?

Responder:
Cosas para analizar:

  • En los videos, el servicio almacenará y transmitirá una gran cantidad de datos que una gran cantidad de usuarios pueden ver y compartir simultáneamente.
  • Registre estadísticas sobre videos, por ejemplo, el número total de vistas, votos positivos, negativos, etc.
  • Agregar comentarios en videos en tiempo real.

Componentes:

  • OC: nubes como AWS, OpenConnect que actúan como una red de entrega de contenido.
  • Backend - Base de datos
  • Cliente: cualquier dispositivo (escritorio, Android, iPhone) desde el que reproduce el video en YouTube / Netflix.

Pasemos a las siguientes preguntas de la entrevista de diseño del sistema.

3) ¿Diseñando Quora / Reddit / HackerNews (una red social + servicio de tablero de mensajes)?

Responder:
Cosas para analizar:

Las personas que usan los servicios pueden compartir enlaces o publicar preguntas. Otros usuarios pueden responder preguntas o comentar en los enlaces compartidos. Entonces el servicio debe hacer lo siguiente:

  • Registra estadísticas para cada respuesta, por ejemplo, el número total de vistas, votos positivos / negativos, etc.
  • Los usuarios deben estar en condiciones de seguir a otros usuarios o temas
  • Lista de las principales preguntas en la línea de tiempo de todos los usuarios y los temas que siguen (similar a la generación de suministro de noticias).

4) ¿Diseña Facebook Messenger o WhatsApp (un servicio de chat global)?

Responder:
Estas son las preguntas básicas de la entrevista de diseño del sistema formuladas en una entrevista. Cosas para analizar:

  • Diseñe conversaciones uno a uno entre usuarios.
  • Extendiendo su diseño para apoyar chats grupales.
  • ¿Qué se puede hacer cuando el usuario no está conectado a Internet?
  • ¿Cuándo enviar notificaciones push?
  • ¿Cómo proporcionar cifrado de extremo a extremo?

Estructura:

Cliente> Balanceador de carga> Nodos> Caché (Redis)> Base de datos (Casandra)

5) Tipo de búsqueda de diseño por delante (Autocompletar)?

Responder:
Cosas para analizar:

  • Escriba las sugerencias que se le proporcionarán.
  • Criterios para elegir las sugerencias.
  • ¿El sistema necesita ser en tiempo real?
  • Apoyo a la personalización con las sugerencias.
  • Consultas por segundo para ser manejadas por el sistema.
  • Cantidad de datos a almacenar.

Parte 2 - Preguntas de la entrevista de diseño del sistema (avanzado)

Veamos ahora las preguntas avanzadas de la entrevista de diseño del sistema.

6) ¿Diseñar Dropbox / Google Drive / Google Photos?

Responder:
Cosas para analizar:

  • ¿Cómo cargar / ver / buscar / compartir archivos o fotos?
  • Rastree los permisos para compartir archivos.
  • Permitir que varios usuarios editen el mismo documento.

7) Diseño de Facebook, Twitter o Instagram?

Responder:
Características a considerar:

  • Algunas de las características de Twitter / Facebook / Instagram serán compatibles.
  • Necesita admitir respuestas a tweets / agrupación de tweets por conversaciones.
  • Controles de privacidad alrededor de cada tweet.
  • Apoyando tweets de tendencias
  • Mensajería directa
  • Menciones / Etiquetado

Cosas para analizar:

  • El número de usuarios y el tráfico que debe manejar el sistema.
  • Cantidad de seguidores que tiene el usuario.
  • El número de veces que el tweet ha sido favorecido.

Componentes necesarios para ser diseñados:

  • Generación de noticias
  • Gráfico social
  • Búsqueda sistemática y almacenamiento de publicaciones / tweets.

Pasemos a las siguientes preguntas de la entrevista de diseño del sistema.

8) Diseñar un rastreador web?

Responder:
Se requiere un servicio escalable que pueda rastrear toda la web y recopilar cientos de millones de documentos web.

Cosas para analizar:

  • Encontrar nuevas páginas web.
  • Priorizar páginas web que cambian dinámicamente.
  • Asegurarse de que el rastreador no esté vinculado ilimitadamente al mismo dominio.

9) Diseño Uber:

Responder:
Estas son las preguntas frecuentes de la entrevista de Diseño del sistema en una entrevista. Arquitectura: servicios monolíticos / micro (servicio en tiempo real, front-end (aplicación) y base de datos)

  • El servidor está atendiendo el tráfico del teléfono móvil y los clientes se conectan al servidor a través de datos móviles.
  • Los clientes se conectan al sistema de despacho que coincide con los conductores y los pasajeros.
  • El envío se escribe casi por completo en node.js.
  • Mapas / ETA: para que el envío realice una elección inteligente, es importante obtener mapas y datos de enrutamiento.
  • Servicios: servicios de lógica de negocios escritos principalmente en python.
  • Bases de datos: Postgres, Redis, MySQL.

Cosas para analizar:

  • Cliente que solicita un viaje y cómo combinarlos económicamente con los conductores cercanos.
  • Almacenar toneladas de ubicaciones geográficas para conductores y pasajeros que siempre están en movimiento.
  • Manejo de actualizaciones a ubicaciones de controladores.

10) ¿Diseñar un limitador de velocidad API (Github)?

Responder:
Cosas para analizar:

  • Limitar el número de solicitudes que una entidad puede enviar a una API dentro de una ventana de tiempo, por ejemplo, diez solicitudes por segundo.
  • La limitación de velocidad debería funcionar para una configuración dispersa, ya que las API son accesibles a través de un grupo de servidores.

Artículos recomendados

Esta ha sido una guía de la lista de preguntas y respuestas de la entrevista de diseño del sistema para que el candidato pueda tomar medidas enérgicas contra estas preguntas de la entrevista de diseño del sistema. Aquí en esta publicación, hemos estudiado las principales preguntas de la entrevista de diseño del sistema que a menudo se hacen en las entrevistas. También puede consultar los siguientes artículos para obtener más información:

  1. Preguntas de la entrevista de AutoCAD
  2. Preguntas de la entrevista de Photoshop
  3. Adobe Illustrator para principiantes
  4. Asistente de diseñador gráfico