Skip to content

Latest commit

 

History

History
30 lines (19 loc) · 1.52 KB

File metadata and controls

30 lines (19 loc) · 1.52 KB

Preguntas - Backend

Arquitectura y capas

  1. ¿Qué responsabilidad tiene cada capa (Controller, Service, Repository)? ¿Qué pasa si se pone lógica de negocio en el controller?
  2. Si necesitaras agregar una nueva entidad (por ejemplo, Waiter), ¿qué archivos crearías y en qué carpetas?

Códigos HTTP y manejo de errores

  1. ¿Qué código HTTP devolvés cuando se intenta crear una reserva para una mesa OUT_OF_SERVICE? ¿Por qué ese y no otro?
  2. ¿Qué diferencia hay entre un 400 (Bad Request) y un 409 (Conflict)? ¿En qué casos usaste cada uno?
  3. Si el cliente envía un JSON con campos faltantes, ¿qué código devolvés y qué mensaje?
  4. ¿Cómo manejás los errores inesperados (por ejemplo, la base de datos se cae)? ¿Devolvés el stack trace al cliente?

Validaciones y reglas de negocio

  1. ¿Dónde validás que la capacidad de una mesa sea mayor a 0? ¿En el controller, en el service, o en la entidad? ¿Por qué ahí?
  2. ¿Cómo implementaste la validación de solapamiento de turnos? Explicá la query o la lógica que usaste.
  3. ¿Qué pasa si dos requests intentan reservar la misma mesa y turno al mismo tiempo? ¿Cómo prevenís esa condición de carrera?

TypeORM y base de datos

  1. ¿Qué tipo de relaciones definiste entre las entidades (ManyToOne, OneToMany)? ¿Por qué elegiste esas?
  2. ¿Qué es synchronize: true en TypeORM y por qué no se recomienda en producción?
  3. ¿Qué pasa si ejecutás migration:run dos veces seguidas?

Seed

  1. ¿Cómo lograste que el seed sea idempotente?