Sobes.tech

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

Senior
Яндекс
124

Da li imate iskustva u optimizaciji SQL upita? Da li znate analizirati plan upita?

Senior
Heads and Hands
124

Koja je svrha objektno-orijentisanog programiranja u razvoju softverskih sistema?

Junior — Middle
Ifellow
124

Koje odluke ste morali doneti u vezi sa zamenom ili implementacijom tehnološkog steka? Dajte primer.

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

Koja vrsta HTTP zahteva treba da se koristi za dobijanje podataka o klijentu putem API-ja po broju kartice?

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

Da li ste spremni za praktične razgovore i znate kako da odgovorite na tipična pitanja koja se javljaju u stvarnom sistemu zapošljavanja?

Junior — Middle
124

Koje su prednosti i mane korišćenja Prototype Scope u projektovanju sistema?

Junior — Middle
124

Kako organizovati izvršenje povlačenja transakcije ili operacije u distribuiranom sistemu koristeći mikroservise?

Middle — Middle+
124

Koje su prednosti i mane korišćenja podele koda na funkcije?

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

Ispričaj o mentorstvu juniora — kako je to izgledalo?

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

U kojim slučajevima treba koristiti anotaciju @Service u razvoju aplikacije?

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

Zašto su istovremeno korišćena dva posrednika poruka — Kafka i RabbitMQ?

Senior
СБЕРСБЕР
124

Koje vrste indeksa poznaješ u PostgreSQL? Pričaj o B-tree indeksu, kako je organizovan. Šta je GIN indeks?

Senior
Сбер Право
124

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

Senior
Velenes.Tech
124

Kako ste vršili promene u bazi podataka na produkciji? Da li ste koristili Liquibase?

Senior
Ecom.tech
124

Koja je razlika između map i flatMap u Stream API?

Senior
SSP Soft
124

Koji nivo vidljivosti treba da bude naveden za kontroler da bi mogao da prati izvršenje zahteva?

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

Šta je REST i kako se razlikuje od običnog HTTP API-ja?

Senior
kode.ru
124

Šta može dovesti do pogoršanja brzine umetanja podataka u bazu podataka nakon kreiranja indeksa?

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

Kada je preporučljivo koristiti komandu install tokom rada sa sistemom?

Junior — Middle
124
/726