Sobes.tech

Java

/* L'azienda fornisce un servizio di invio massivo di notifiche ad altre aziende. Un product owner ha richiesto di creare un sistema di filtraggio delle notifiche considerando le preferenze degli utenti. ## Definizioni Notifica: - id della notifica - tipo di notifica (EMAIL, SMS, PUSH) - destinatario (id dell'utente) - testo del messaggio Il destinatario può avere impostazioni di preferenza: - canali di notifica consentiti (lista di tipi) - mittenti bloccati (lista di id mittenti) Storia delle notifiche inviate: - lista delle notifiche inviate all'utente ## Importante Le impostazioni degli utenti e la storia delle notifiche sono fornite da altri componenti del sistema. Devi progettare contratti per ottenere questi dati. Non è necessario implementare lo storage. ## Compito Scrivere un sistema di filtraggio delle notifiche che: - riceve una lista di notifiche da filtrare e l'id del mittente - esclude le notifiche che non corrispondono alle preferenze dell'utente - implementa protezione contro i duplicati, considerando anche i messaggi inviati nelle ultime 24 ore. I duplicati sono considerati messaggi con lo stesso id indirizzati allo stesso utente - restituisce la lista filtrata di notifiche pronte all'invio. L'invio delle notifiche non è parte del vostro compito; un altro team si occuperà di inviare la lista filtrata. Il vostro compito è solo il filtraggio. */ 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

Hai esperienza nell'ottimizzazione delle query SQL? Sai analizzare il piano della query?

Senior
Heads and Hands
124

Qual è lo scopo della programmazione orientata agli oggetti nello sviluppo di sistemi software?

Junior — Middle
Ifellow
124

Quali decisioni hai dovuto prendere riguardo alla sostituzione o all'implementazione di uno stack tecnologico? Fornisci un esempio.

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

Quale tipo di richiesta HTTP deve essere utilizzata per ottenere i dati del cliente tramite il numero di carta tramite API?

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

Sei preparato per colloqui pratici e sai rispondere alle domande tipiche che si incontrano in un sistema di assunzione reale?

Junior — Middle
124

Quali sono i vantaggi e gli svantaggi dell'utilizzo dello Scope Prototype nella progettazione dei sistemi?

Junior — Middle
124

Come organizzare l'esecuzione di un rollback di una transazione o operazione in un sistema distribuito con microservizi?

Middle — Middle+
124

Quali sono i vantaggi e gli svantaggi dell'utilizzo della suddivisione del codice in funzioni?

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

Parlami del mentoring dei junior — come era?

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

In quali casi è necessario utilizzare l'annotazione @Service nell'applicazione in sviluppo?

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

Perché sono stati usati due broker di messaggi, Kafka e RabbitMQ, contemporaneamente?

Senior
СБЕРСБЕР
124

Quali tipi di indici conosci in PostgreSQL? Spiega l'indice B-tree, come funziona. Cos'è un indice GIN?

Senior
Сбер Право
124

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

Senior
Velenes.Tech
124

Come hai effettuato le modifiche al database in produzione? Hai usato Liquibase?

Senior
Ecom.tech
124

Qual è la differenza tra map e flatMap nell'API Stream?

Senior
SSP Soft
124

Quale livello di visibilità dovrebbe essere specificato per il controller affinché possa monitorare l'esecuzione delle richieste?

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

Cos'è REST e come si differenzia da una normale API HTTP?

Senior
kode.ru
124

Cosa può causare un peggioramento della velocità di inserimento dei dati nel database dopo la creazione degli indici?

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

Quando è consigliato usare il comando install durante il lavoro con il sistema?

Junior — Middle
124
/726