La ronda 1:
Nos pidió que escribiéramos un código de trabajo en JAVA en 90 minutos para esta pregunta. No aclaró esta ronda, pero sintió que esta pregunta era importante, por lo que la compartió.
Eventos:
- Un evento normalmente consistiría en {inicio, finalización, ubicación, propietario, lista de usuarios, título}
- Los eventos pueden ser como reuniones (con un lugar específico y una lista de invitados adecuada) o también como vacaciones, cumpleaños, recordatorios, etc.
- Una vez creado un evento, los usuarios constituyentes pueden aceptarlo o rechazarlo, si ninguno de los dos debe estar en estado neutral.
Implemente 2 API cualquiera:
- API de usuario para crear, actualizar o cancelar sus eventos. La operación de creación/actualización debe tener éxito solo en caso de que no haya conflictos de recursos
- Dado un usuario, proporcione una API para obtener una lista de eventos/reuniones para el rango de fechas dado.
- Dada una ID de reunión, proporcione una API para brindar detalles de los invitados con sus respuestas, es decir. ACEPTAR, RECHAZAR, etc.
- API para encontrar habitaciones disponibles en un edificio específico en un intervalo de tiempo particular
Expectativas:
- La calidad del código debe estar lista para la producción para la fusión y la implementación
- Las pautas tienen el peso más alto que terminar más API
- El código debe ser demostrable. cree los datos de muestra usted mismo en un archivo, caso de prueba o programa de controlador principal (sin almacenamiento de datos externo). No pierda tiempo analizando las entradas.
- El código debe ser legible, modular (sin monolitos), comprobable, extensible con convenciones de nomenclatura adecuadas
- El código debe manejar los casos extremos correctamente y fallar con gracia
Pautas:
- Defina un modelo de objeto detallado para las entidades requeridas por el sistema
- Hacer un uso adecuado de la herencia, la abstracción, las interfaces, el manejo de excepciones
- Tener comentarios adecuados en el código y debe seguir las mejores prácticas de codificación
- Use patrones de diseño como Builder, Factory, Visitor, etc., donde corresponda
- Justifique sus opciones de codificación, es decir. ¿Por qué eligió definir una función separada para una característica o por qué no definió un constructor para inicializar la clase?
- Defina Enums, clases Singleton donde sea aplicable
- Se aborda la separación de intereses
- Implementar casos de prueba de unidad para secciones clave de su código
- Utilice funciones de Java 8/7 como interfaces funcionales, recursos de cierre automático, etc.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA