6 pasos para abordar preguntas de diseño orientado a objetos en una entrevista

Diseño Orientado a Objetos… el tema más importante para aprender en programación.

Si eres nuevo o un ingeniero de software que trabaja en una empresa, seguramente tu objetivo es llegar a algunas grandes empresas como Facebook, Microsoft, Google o Amazon. Estas empresas llevan a cabo la ronda de diseño para comprobar la capacidad del candidato, ya sea capaz de construir un sistema complejo o no. Esta ronda puede ser una ronda de diseño de sistema o una ronda de diseño orientado a objetos. Ya hemos discutido el tema de descifrar la ronda de diseño del sistema en entrevistas .

How-to-Approach-Object-Oriented-Design-Questions-in-Interview

En este blog, discutiremos cómo abordar una ronda de diseño orientado a objetos en entrevistas. Si se está preparando para el rol de desarrollador de nivel de entrada o el rol de desarrollador senior, este blog es sin duda para usted.

Empecemos identificando el objetivo principal de esta ronda…

  • Se le dará al candidato una declaración genérica del problema, y ​​el candidato debe encontrar una solución técnica utilizando su habilidad de diseño orientado a objetos. 
  • El candidato necesita identificar los diferentes objetos y entidades en un enunciado de problema dado.
  • El entrevistador comprobará cuánto se siente cómodo un candidato con los conceptos y principios de OOP y qué tan bien un candidato puede diseñar un sistema utilizando estos conceptos. 

Preparación antes de las entrevistas

1. Debe tener un buen dominio de un lenguaje de programación orientado a objetos, como Java/C++/Python, etc. Tenga algo de experiencia y aprenda cómo funcionan los conceptos de programación orientada a objetos en estos lenguajes.

  • Abstracción
  • Encapsulación
  • Herencia
  • Polimorfismo
  • Asociación, Agregación, Composición
  • Clase
  • Objeto
  • Método

2. Comprender los diversos principios de diseño orientado a objetos, como los principios SÓLIDO/SECO, etc. 

3. Si tiene un buen dominio de varios patrones de diseño, como MVC, singleton, método de fábrica, etc., será un punto extra para usted como desarrollador de nivel de entrada o desarrollador de nivel senior. 

Pasemos al siguiente paso que es el proceso de entrevista…

Proceso paso a paso para abordar el problema

1. Recopilación de requisitos

En primer lugar identificar lo que el entrevistador está buscando? ¿Es un diseño a nivel de sistema o una ronda de diseño a nivel de objeto en las entrevistas? Ambas rondas tendrán un enfoque diferente a seguir. Comienza con las reuniones de requisitos. 

Aquí el entrevistador le dará una descripción de alto nivel del sistema y tendrá que identificar el alcance exacto del problema. Profundice y aclare todo lo que busca en el sistema. Hable con el entrevistador sobre las características y haga preguntas para aclarar la confusión. Intente averiguar el resultado que busca el entrevistador. 

  • Reúna los principales requisitos o la característica que desea incluir en su diseño. Escriba todos los requisitos y discútalos con el entrevistador. Su entrevistador mencionará si desea incluir algunos otros detalles o características.
  • Una vez que se discute el requisito, hable sobre los casos de uso en un alto nivel.
  • Ahora defina claramente sus suposiciones para el entrevistador.
  • Mencione y aclare el alcance que necesita abordar en las entrevistas.

Tomemos el ejemplo de un sistema de compras en línea. En este ejemplo, podemos considerar algunos requisitos dados a continuación…

  • El cliente puede buscar/ver/comprar productos
  • Un carro de la compra para que el cliente ponga todos los artículos que quiera comprar.
  • El cliente debe poder pagar a través de tarjetas de crédito/débito/banca neta
  • El cliente debe poder mencionar la dirección de envío donde se pueden entregar sus pedidos.

2. Diagrama de casos de uso

Mientras discute el requisito, debe haber identificado todos los casos de uso que necesita incluir en su diseño. Enumere todos los casos de uso que su sistema debe diseñar. Podrá identificar los diferentes componentes y actores que necesita incluir en su sistema. 

  • Identificar todos los actores en el Diagrama de Casos de Uso
  • Identificar los roles de los diferentes actores.

Ahora necesita transformar eso en el diagrama de casos de uso. A continuación se muestra el caso de uso del sistema de compras en línea.

Use-Case-Diagram

  • Buscar producto en el sitio web
  • Ver producto en el sitio web
  • Agregar/Eliminar Producto del carrito de compras
  • Verificar
  • Realice el pago y especifique una dirección de envío

3. Diagrama de actividades

Una vez que identificó los actores y el rol de cada actor, concéntrese en la lógica, la estructura completa y el flujo general del sistema. Escriba el diagrama de flujo. Esto le ayudará a comprender claramente el problema y tendrá la oportunidad de corregir sus errores. A continuación se muestra el diagrama de actividad del sistema de compras en línea.

Activity-Diagram

4. Diagrama de clase

Esta es la parte central del proceso de entrevista. Tu entrevistador estará más interesado en esta parte. Hasta ahora, tiene todos los materiales, como diferentes objetos del sistema y actores para colocarlos en un diagrama de clases.

Comience con la identificación de los objetos centrales. ¿Cómo identificar los objetos centrales? A continuación se muestra la regla para identificar los objetos principales…

  • Los sustantivos en requisitos son posibles candidatos para objetos.
  • Los verbos en los requisitos son métodos posibles.

A. Su objetivo principal es identificar la relación entre los objetos.

B. Identificar si usar una clase abstracta o una interfaz para las abstracciones

C. Verifique si puede usar algunos patrones de diseño o no.

D. Diseñe un diagrama de clases para representar todo al entrevistador. 

Tenga en cuenta una cosa que el entrevistador puede hacerle preguntas adicionales. Él / ella puede hacer algunas preguntas con respecto a sus opciones de diseño. Tendrá que dar la justificación de la elección que hizo. ¿Cómo manejaría el sistema si en el futuro crecen los usuarios en su sitio web? El entrevistador puede hacerle este tipo de preguntas.

Las preguntas de diseño son abiertas y diferentes candidatos tendrán diferentes respuestas. No hay respuestas incorrectas… así que defiende tu diseño.  

Asegúrese de tener en cuenta los principios básicos del diseño orientado a objetos. Estos principios lo ayudarán en los diagramas de clase y lo ayudarán a manejar las preguntas de manera efectiva. 

Class-Diagram

5. Describa los principales casos de uso

Utilice la clase definida en el paso anterior y ejecute los principales casos de uso. Esto es similar al diagrama de actividad. Esto le ayudará si se ha perdido algún componente o escenario. Debe explicar esto verbalmente al entrevistador. 

6. Código

La parte de codificación es opcional en esta ronda, pero el entrevistador puede pedirle que escriba el código para una característica o componente específico. En caso de que se le pida que escriba el código, priorice las cosas que se indican a continuación.

  • Comience con las interfaces o clases abstractas
  • Escriba el código para los objetos centrales y la estructura interna. 
  • Escribe la parte de implementación.
  • Escribir JUnit

En un nivel alto, defina todas las propiedades requeridas, funciones, interfaces, etc. 

Publicación traducida automáticamente

Artículo escrito por anuupadhyay y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *