Sobes.tech

Опишите како сте сарађивали са тимом у вашем последњем пројекту.

Junior — Middle
171

Kako je tim strukturiran i raspoređen u vašem projektu?

Junior — Middle
161

Napišite testove za sistem filtracije obaveštenja koristeći JUnit 5 i Mockito, pokrivajući osnovne scenarije: null/prazan unos, validno obaveštenje, blokiranje pošiljaoca, filtriranje po kanalu, deduplikacija.

161

Koje trenutne projekte ili zadatke realizujete u poslednje vreme?

Junior — Middle
159

Koja je vremenska složenost operacije dodavanja elementa u stek?

Junior — Middle
159

Kako se određuje vremenska složenost metode get u strukturi podataka HashMap?

Junior — Middle
157

Kako mikroservis određuje kako da komunicira sa drugim servisom u pristupu Direktni Poziv?

Junior — Middle
153

Koje promene u pristupu ili rešenjima biste uneli u poslednji projekat, znajući sada ono što znate?

Junior — Middle
151

Можете ли објаснити шта је ситуација међусобног заклезања нитева у систему?

Junior — Middle
147

Kako optimizovati implementaciju sistema filtriranja obaveštenja?

132

/* Kompanija pruža uslugu masovnog slanja obaveštenja za druge biznise. Vlasnik proizvoda je zatražio kreiranje sistema za filtriranje obaveštenja uzimajući u obzir preferencije korisnika. ## Definicije Obaveštenje: - ID obaveštenja - tip obaveštenja (EMAIL, SMS, PUSH) - primalac (ID korisnika) - tekst poruke Primalac može imati podešavanja preferencija: - dozvoljeni kanali obaveštenja (lista tipova) - blokirani pošiljaoci (lista ID pošiljaoca) Istorija poslatih obaveštenja: - lista obaveštenja poslatih korisniku ## Važno Podešavanja korisnika i istorija poslatih obaveštenja se obezbeđuju od strane drugih komponenti sistema. Morate dizajnirati ugovore za dobijanje ovih podataka. Implementacija skladištenja nije potrebna. ## Zadatak Napisati sistem za filtriranje obaveštenja koji: - prima listu obaveštenja za filtriranje i ID pošiljaoca - isključuje obaveštenja koja ne odgovaraju korisničkim preferencama - implementira zaštitu od duplikata poruka, uključujući i one poslate u poslednjih 24 sata. Duplicati se smatraju porukama sa istim ID-jem, upućenim istom korisniku - vraća filtriranu listu obaveštenja spremnu za slanje. Slanje obaveštenja nije deo vašeg zadatka; drugi tim će se pobrinuti za slanje filtrirane liste. Vaš zadatak je samo filtriranje. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }

130
/2