Sobes.tech

Java

¿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?

Junior — Middle
172

¿Qué cambios en el enfoque o en las soluciones introduciría en el último proyecto realizado, sabiendo lo que sabe ahora?

Junior — Middle
169

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.

163

¿Cómo está estructurado y distribuido el equipo en su proyecto?

Junior — Middle
163

¿Qué proyectos o tareas estás llevando a cabo actualmente?

Junior — Middle
161

¿Cuál es la complejidad temporal de la operación de agregar un elemento a la pila?

Junior — Middle
160

¿Cómo se determina la complejidad temporal del método get en la estructura de datos HashMap?

Junior — Middle
157

¿Cómo determina un microservicio cómo comunicarse con otro servicio en el enfoque de llamada directa?

Junior — Middle
156

¿Podría explicar qué es una situación de interbloqueo de hilos en un sistema?

Junior — Middle
151

¿Cómo se puede optimizar la implementación del sistema de filtrado de notificaciones?

133

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

132
/2