Sobes.tech

/* Compania oferă un serviciu de trimitere în masă a notificărilor pentru alte afaceri. Un proprietar de produs a solicitat crearea unui sistem de filtrare a notificărilor, ținând cont de preferințele utilizatorilor. ## Definiții Notificare: - id-ul notificării - tipul notificării (EMAIL, SMS, PUSH) - destinatarul (id-ul utilizatorului) - textul mesajului Destinatarul poate avea setări de preferințe: - canale de notificare permise (listă de tipuri) - expeditori blocați (listă de id-uri de expeditori) Istoria notificărilor trimise: - listă de notificări trimise utilizatorului ## Important Setările utilizatorilor și istoricul notificărilor sunt furnizate de alte componente ale sistemului. Trebuie să proiectați contracte pentru a obține aceste date. Implementarea stocării nu este necesară. ## Sarcină Scrieți un sistem de filtrare a notificărilor care: - primește o listă de notificări pentru filtrare și id-ul expeditorului - exclude notificările care nu corespund preferințelor utilizatorului - implementează protecție împotriva mesajelor duplicate, inclusiv cele trimise în ultimele 24 de ore. Duplicatele sunt considerate mesajele cu același id, adresate aceluiași utilizator - returnează lista filtrată de notificări gata pentru trimitere. Trimiterea notificărilor nu face parte din sarcina dvs.; un alt echipă se va ocupa de trimiterea listei filtrate. Sarcina dvs. este doar filtrarea. */ 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

Ai experiență în optimizarea interogărilor SQL? știi să analizezi planul interogării?

Senior
Heads and Hands
124

Care este scopul programării orientate pe obiect în dezvoltarea sistemelor software?

Junior — Middle
Ifellow
124

Ce decizii a fost necesar să luați în legătură cu înlocuirea sau implementarea unui stack tehnologic? Oferiți un exemplu.

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

Ce tip de solicitare HTTP trebuie utilizat pentru a obține datele clientului după numărul cardului prin API?

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

Ești pregătit pentru interviuri practice și știi să răspunzi la întrebările tipice întâlnite într-un sistem real de angajare?

Junior — Middle
124

Care sunt avantajele și dezavantajele utilizării Scope-ului de tip prototip în proiectarea sistemelor?

Junior — Middle
124

Cum se organizează efectuarea unui rollback al unei tranzacții sau operații într-un sistem distribuit folosind microservicii?

Middle — Middle+
124

Care sunt avantajele și dezavantajele împărțirii codului în funcții?

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

Vorbește despre mentoratul pentru juniori — cum a fost?

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

În ce cazuri trebuie utilizată adnotarea @Service în aplicația în curs de dezvoltare?

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

De ce au fost folosiți doi brokeri de mesaje — Kafka și RabbitMQ — în același timp?

Senior
СБЕРСБЕР
124

Ce tipuri de indecși cunoști în PostgreSQL? Vorbește despre indexul B-tree, cum este structurat. Ce este un index GIN?

Senior
Сбер Право
124

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

Senior
Velenes.Tech
124

Cum ați realizat modificările bazei de date în producție? Ați folosit Liquibase?

Senior
Ecom.tech
124

Care este diferența dintre map și flatMap în API-ul Stream?

Senior
SSP Soft
124

Ce nivel de vizibilitate trebuie specificat pentru controler pentru a putea urmări executarea solicitărilor?

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

Ce este REST și cum diferă de o API HTTP obișnuită?

Senior
kode.ru
124

Ce poate duce la scăderea vitezei de inserare a datelor în baza de date după crearea indexurilor?

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

Când este recomandat să folosiți comanda install în timpul lucrului cu sistemul?

Junior — Middle
124
/726