¿Tiene prácticas de DevOps implementadas en su proyecto o hay un equipo que se encarga de automatizar e integrar los procesos de desarrollo y operación?
Java
¿Qué cambios en el enfoque o en las soluciones introduciría en el último proyecto realizado, sabiendo lo que sabe ahora?
Escriba pruebas para el sistema de filtrado de notificaciones utilizando JUnit 5 y Mockito, cubriendo los escenarios principales: entrada nula/vacía, notificación válida, bloqueo del remitente, filtrado por canal, deduplicación.
¿Cómo está estructurado y distribuido el equipo en su proyecto?
¿Qué proyectos o tareas estás llevando a cabo actualmente?
¿Cuál es la complejidad temporal de la operación de agregar un elemento a la pila?
¿Cómo se determina la complejidad temporal del método get en la estructura de datos HashMap?
¿Cómo determina un microservicio cómo comunicarse con otro servicio en el enfoque de llamada directa?
¿Podría explicar qué es una situación de interbloqueo de hilos en un sistema?
¿Cómo se puede optimizar la implementación del sistema de filtrado de notificaciones?
/* La empresa proporciona un servicio de envío masivo de notificaciones a otros negocios. Un propietario de producto se acercó con la tarea de crear un sistema de filtrado de notificaciones considerando las preferencias de los usuarios. ## Definiciones Notificación: - id de la notificación - tipo de notificación (EMAIL, SMS, PUSH) - destinatario (id del usuario) - texto del mensaje El destinatario puede tener configuraciones de preferencias: - canales de notificación permitidos (lista de tipos) - remitentes bloqueados (lista de ids de remitentes) Historial de notificaciones enviadas: - lista de notificaciones enviadas al usuario ## Importante Las configuraciones de los usuarios y el historial de notificaciones son proporcionados por otros componentes del sistema. Debe diseñar contratos para obtener estos datos. No es necesario implementar el almacenamiento. ## Tarea Escribir un sistema de filtrado de notificaciones que: - recibe una lista de notificaciones para filtrar y el id del remitente - excluye notificaciones que no cumplen con las preferencias del usuario - implementa protección contra mensajes duplicados, incluyendo los enviados en las últimas 24 horas. Se consideran duplicados los mensajes con el mismo id dirigidos a un mismo usuario - devuelve la lista filtrada de notificaciones listas para enviar. El envío de notificaciones no es parte de su tarea; otro equipo se encargará de enviar la lista filtrada. Su tarea es solo filtrar. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }