Sobes.tech

Proiectul dumneavoastră implementează practici DevOps sau există o echipă care se ocupă de automatizarea și integrarea proceselor de dezvoltare și exploatare?

Junior — Middle
172

Ce schimbări în abordare sau soluții ai face în ultimul proiect finalizat, știind acum ceea ce știi?

Junior — Middle
169

Scrie teste pentru sistemul de filtrare a notificărilor folosind JUnit 5 și Mockito, acoperind scenariile principale: intrare nul/goale, notificare validă, blocarea expeditorului, filtrare după canal, deduplicare.

163

Cum este structurat și distribuit echipa în proiectul dumneavoastră?

Junior — Middle
163

Ce proiecte sau sarcini realizați în prezent?

Junior — Middle
161

Care este complexitatea temporală a operației de adăugare a unui element în stivă?

Junior — Middle
160

Cum se determină complexitatea temporală a metodei get în structura de date HashMap?

Junior — Middle
157

Cum determină un microserviciu cum să contacteze un alt serviciu în abordarea Apelului Direct?

Junior — Middle
156

Ai putea explica ce este o situație de blocare mutuală între fire în sistem?

Junior — Middle
151

Cum se poate optimiza implementarea sistemului de filtrare a notificărilor?

133

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

132
/2