Java
/* Ettevõte pakub masspostitavate teavitusteenust teistele ettevõtetele. Teid on pöördunud tooteomanik ülesandega luua teavituste filtreerimissüsteem, võttes arvesse kasutajate eelistusi. ## Määratlused Teavitus: - teavituse ID - teavituse tüüp (EMAIL, SMS, PUSH) - saaja (kasutaja ID) - sõnumi tekst Saaja võib omada eelistuste seadeid: - lubatud teavituste kanalid (loend tüüpide kohta) - blokeeritud saatjad (loend saatjate ID-d) Saatmise ajalugu: - nimekiri saatjatest, kellele teavitusi on saadetud ## Oluline Kasutaja seaded ja saatmise ajalugu on teised süsteemi komponendid. Teil tuleb koostada nende andmete saamise lepingud. Salvestamise teostamine ei ole vajalik. ## Ülesanne Kirjutada teavituste filtreerimissüsteem, mis: - võtab sisendina teavituste nimekirja ja saatja ID - välistab kasutaja eelistustega mitte sobivad teavitused - rakendab kaitset duplikaatsete sõnumite vastu, kaasa arvatud viimase 24 tunni jooksul saadetud sõnumid. Duplikaadid on samade ID-dega sõnumid, mis on adresseeritud ühele kasutajale - tagastab filtreeritud teavituste nimekirja, mis on valmis saatmiseks. Teavituste saatmine ei kuulu teie ülesandesse – selle teostab teine meeskond. Teie ülesandeks on ainult filtratsioon. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }
Kas teil on kogemusi SQL-päringute optimeerimisel? Kas oskate päringu plaani analüüsida?
Mis on objektorienteeritud programmeerimise eesmärk tarkvarasüsteemide arendamisel?
Milliseid otsuseid tuli teha tehnoloogilise steki asendamise või kasutuselevõtu osas? Tooge näide.
Millist tüüpi HTTP-päringut tuleks kasutada kliendi andmete saamiseks kaardi numbri kaudu API kaudu?
Kas oled valmis praktilisteks intervjuudeks ja tead, kuidas vastata tüüpilistele küsimustele, mis esinevad tõelises töölevõtusüsteemis?
Millised on eelised ja puudused Prototype Scope kasutamisel süsteemide kavandamisel?
Kuidas korraldada tehingu või operatsiooni tagasivõtmise teostamine jaotatud süsteemis mikroteenuste kasutamisega?
Millised on koodi jagamise funktsioonideks kasutamise eelised ja puudused?
Rääkige noormeeste mentorlusest — kuidas see välja nägi?
Millistel juhtudel tuleks kasutada @Service annotatsiooni arendatavas rakenduses?
Miks kasutati samaaegselt kahte sõnumivahetajat — Kafka ja RabbitMQ?
Milliseid indeksi tüüpe tead PostgreSQL-is? Räägi B-tre indeksist, kuidas see töötab. Mis on GIN indeks?
Integer i = 300, j = 300; System.out.println(i == j);
Kuidas te tegite muudatusi andmebaasis tootmisel? Kas kasutasite Liquibase'i?
Mis vahe on map ja flatMap vahel Stream API-s?
Millist nähtavuse taset peaks kontrollijale määrama, et ta saaks jälgida päringute täitmist?
Mis on REST ja kuidas see erineb tavapärasest HTTP API-st?
Mis võib põhjustada andmebaasi andmete sisestamise kiiruse halvenemist pärast indeksite loomist?
Millal on soovitatav kasutada käsku install süsteemiga töötades?