Java
/* Įmonė teikia masinio pranešimų siuntimo paslaugą kitiems verslams. Jums kreipėsi produktų savininkas su užduotimi sukurti filtravimo sistemą, atsižvelgiant į naudotojų pageidavimus. ## Apibrėžimai Pranešimas: - pranešimo ID - pranešimo tipas (EL. PAŠTAS, SMS, PUSH) - gavėjas (vartotojo ID) - žinutės tekstas Gavėjas gali turėti pageidavimų nustatymus: - leidžiami pranešimų kanalai (sąrašas tipų) - užblokuoti siuntėjai (sąrašas siuntėjų ID) Siuntimo istorija: - sąrašas pranešimų, išsiųstų vartotojui ## Svarbu Vartotojų nustatymai ir siuntimo istorija yra teikiami kitų sistemos komponentų. Jums reikia sukurti šių duomenų gavimo sutartis. Saugojimo įgyvendinimo nereikia. ## Užduotis Parašyti pranešimų filtravimo sistemą, kuri: - priima įvestį – sąrašą pranešimų filtravimui ir siuntėjo ID - išskiria pranešimus, nesutinkančius su naudotojo pageidavimais - įgyvendina apsaugą nuo dubliuojamų žinučių, įskaitant tas, kurios buvo išsiųstos per pastarąsias 24 valandas. Dubliavimais laikomos žinutės su tais pačiais ID, adresuotos vienam vartotojui - grąžina filtruotą pranešimų sąrašą, paruoštą siuntimui. Pranešimų siuntimas nėra jūsų užduotis – kita komanda pasirūpins filtruoto sąrašo siuntimu. Jūsų užduotis – tik filtravimas. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }
Ar turite patirties optimizuojant SQL užklausas? Ar mokate analizuoti užklausos planą?
Koks yra objektinio programavimo tikslas programinės įrangos sistemų kūrime?
Kokius sprendimus turėjote priimti keičiant ar diegiant technologijų rinkinį? Pateikite pavyzdį.
Kokio tipo HTTP užklausa turėtų būti naudojama norint gauti kliento duomenis pagal kortelės numerį per API?
Ar esi pasiruošęs praktiniams pokalbiams ir žinai, kaip atsakyti į tipinius klausimus, pasitaikančius realiame įdarbinimo sistemoje?
Kokios yra pranašumai ir trūkumai naudojant Prototype Scope sistemų projektavime?
Kaip organizuoti operacijos ar sandorio atšaukimo vykdymą paskirstytoje sistemoje naudojant mikroservisus?
Kokios yra funkcijų skaidymo į kodą privalumai ir trūkumai?
Papaskinkite apie jaunuolių mentorystę — kaip tai atrodė?
Kokiais atvejais turėtų būti naudojama @Service anotacija kuriamoje programoje?
Kodėl vienu metu buvo naudojami du žinučių tarpininkai — Kafka ir RabbitMQ?
Kokius indeksų tipus žinai PostgreSQL? Papasakok apie B-tree indeksą, kaip jis veikia. Kas yra GIN indeksas?
Integer i = 300, j = 300; System.out.println(i == j);
Kaip atlikote duomenų bazės pakeitimus gamyboje? Ar naudojote Liquibase?
Kuo skiriasi map ir flatMap Stream API?
Kokį matomumo lygį turėtų nurodyti kontroleris, kad galėtų stebėti užklausų vykdymą?
Kas yra REST ir kaip jis skiriasi nuo įprastos HTTP API?
Kas gali sukelti duomenų įterpimo į duomenų bazę greičio pablogėjimą po indeksų sukūrimo?
Kada rekomenduojama naudoti komandą install dirbant su sistema?