Proiectul dumneavoastră implementează practici DevOps sau există o echipă care se ocupă de automatizarea și integrarea proceselor de dezvoltare și exploatare?
Java
Ce schimbări în abordare sau soluții ai face în ultimul proiect finalizat, știind acum ceea ce știi?
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.
Cum este structurat și distribuit echipa în proiectul dumneavoastră?
Ce proiecte sau sarcini realizați în prezent?
Care este complexitatea temporală a operației de adăugare a unui element în stivă?
Cum se determină complexitatea temporală a metodei get în structura de date HashMap?
Cum determină un microserviciu cum să contacteze un alt serviciu în abordarea Apelului Direct?
Ai putea explica ce este o situație de blocare mutuală între fire în sistem?
Cum se poate optimiza implementarea sistemului de filtrare a notificărilor?
/* 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 }