Sobes.tech

Java

/* 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 }

Senior
Яндекс
124

¿Tienes experiencia en optimización de consultas SQL? ¿Sabes analizar el plan de la consulta?

Senior
Heads and Hands
124

¿Cuál es el propósito de la programación orientada a objetos en el desarrollo de sistemas de software?

Junior — Middle
Ifellow
124

¿Qué decisiones tuvo que tomar en cuanto a la sustitución o implementación de la pila tecnológica? Dé un ejemplo.

Senior
ИП Ганус Александр Андреевич
124

¿Qué tipo de solicitud HTTP debe utilizarse para obtener los datos del cliente por número de tarjeta a través de la API?

Junior — Middle
ОТП БанкОТП Банк
124

¿Estás preparado para realizar entrevistas prácticas y sabes cómo responder a las preguntas típicas que aparecen en un sistema de contratación real?

Junior — Middle
124

¿Cuáles son las ventajas y desventajas de usar el alcance de prototipo en el diseño de sistemas?

Junior — Middle
124

¿Cómo organizar la reversión de una transacción o operación en un sistema distribuido utilizando microservicios?

Middle — Middle+
124

¿Cuáles son las ventajas y desventajas de usar la división de código en funciones?

Junior — Middle
СБЕРСБЕР
124

¿Puedes contarme sobre el mentorazgo de los novatos? ¿Cómo era eso?

Senior
Росгосстрах
124

¿En qué casos debería usarse la anotación @Service en la aplicación en desarrollo?

Junior — Middle
СБЕРСБЕР
124

¿Por qué se utilizaron dos brokers de mensajes, Kafka y RabbitMQ, al mismo tiempo?

Senior
СБЕРСБЕР
124

¿Qué tipos de índices conoces en PostgreSQL? Explica el índice B-tree, cómo funciona. ¿Qué es un índice GIN?

Senior
Сбер Право
124

Integer i = 300, j = 300; System.out.println(i == j);

Senior
Velenes.Tech
124

¿Cómo realizaste cambios en la base de datos en producción? ¿Usaste Liquibase?

Senior
Ecom.tech
124

¿En qué se diferencia map de flatMap en la API Stream?

Senior
SSP Soft
124

¿Qué nivel de alcance debe especificarse para el controlador para que pueda rastrear la ejecución de las solicitudes?

Junior — Middle
ГазпромбанкГазпромбанк
124

¿Qué es REST y en qué se diferencia de una API HTTP convencional?

Senior
kode.ru
124

¿Qué puede causar una disminución en la velocidad de inserción de datos en la base de datos después de crear índices?

Junior — Middle
Т-БанкТ-Банк
124

¿Cuándo se recomienda usar el comando install durante el trabajo con el sistema?

Junior — Middle
124
/726