Kas teie projektis on rakendatud DevOps praktika või on olemas meeskond, kes tegeleb arendus- ja tegevusprotsesside automatiseerimise ja integreerimisega?
Java
Milliseid muudatusi või lahendusi te viimases ellu viidud projektis teeksite, teades seda, mida te nüüd tead?
Kuidas on teie projekti meeskond struktureeritud ja jaotatud?
Kirjutage testeid teavituste filtreerimissüsteemile, kasutades JUnit 5 ja Mockito, katvades peamised stsenaariumid: null/tühi sisend, kehtiv teavitus, saatja blokeerimine, kanali järgi filtreerimine, duplikaatide eemaldamine.
Milliseid praeguseid projekte või ülesandeid te viimastel aegadel ellu olete viinud?
Mis on elemendi lisamise operatsiooni ajakulude keerukus virnastikus?
Kuidas määratleda HashMap andmestruktuuri meetodi get ajakulude keerukus?
Kuidas määrab mikroteenus, kuidas suhelda teise teenusega otse kõne lähenemisviisis?
Kas võiks selgitada, mis on süsteemis vastastikune lukustussituatsioon?
Kuidas optimeerida teavituste filtreerimissüsteemi rakendamist?
/* 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 }