Vai jūsu projektā ir ieviestas DevOps prakses vai ir komanda, kas nodarbojas ar automatizāciju un procesu integrāciju izstrādes un ekspluatācijas jomā?
Java
Kādus izmaiņas pieejā vai risinājumos jūs ieviestu pēdējā īstenotajā projektā, zinot to, ko tagad zināt?
Kā ir strukturēta un sadalīta jūsu projekta komanda?
Rakstiet testus paziņojumu filtrēšanas sistēmai, izmantojot JUnit 5 un Mockito, aptverot galvenos scenārijus: null/tukša ievade, derīga paziņojums, sūtītāja bloķēšana, filtrēšana pēc kanāla, dublēšanu novēršana.
Kādus pašreizējos projektus vai uzdevumus jūs īstenojat pēdējā laikā?
Kāda ir elementa pievienošanas operācijas laika sarežģītība stakā?
Kā tiek noteikta laika sarežģītība metodei get HashMap datu struktūrā?
Kā mikroserviss nosaka, kā sazināties ar citu pakalpojumu tiešās zvana pieejā?
Vai jūs varētu izskaidrot, kas ir savstarpējās bloķēšanas situācija sistēmā?
/* Uzņēmums nodrošina masu paziņojumu sūtīšanas pakalpojumu citiem uzņēmumiem. Jums vērsās produkta īpašnieks ar uzdevumu izveidot filtrēšanas sistēmu, ņemot vērā lietotāju preferences. ## Definīcijas Paziņojums: - paziņojuma ID - paziņojuma tips (EPASTS, SMS, PUSH) - saņēmējs (lietotāja ID) - ziņojuma teksts Saņēmējs var būt iestatījis preferences: - atļautie paziņojumu kanāli (saraksts ar tipiem) - bloķētie sūtītāji (saraksts ar sūtītāju ID) Sūtījumu vēsture: - saraksts ar sūtītajiem paziņojumiem lietotājam ## Svarīgi Lietotāju iestatījumi un sūtījumu vēsture tiek nodrošināta ar citu sistēmas komponentu palīdzību. Jums jāizstrādā šo datu saņemšanas līgumi. Glabāšanas īstenošana nav nepieciešama. ## Uzdevums Izstrādāt paziņojumu filtrēšanas sistēmu, kas: - pieņem ievadē sarakstu ar paziņojumiem filtrēšanai un sūtītāja ID - izslēdz paziņojumus, kas neatbilst lietotāja preferencēm - īsteno aizsardzību pret dublikātu ziņojumiem, ieskaitot tos, kas nosūtīti pēdējās 24 stundās. Dublikāti tiek uzskatīti par ziņojumiem ar vienādu ID, adresēti vienam lietotājam - atgriež filtrētu paziņojumu sarakstu, kas ir gatavs nosūtīšanai. Paziņojumu sūtīšana nav jūsu uzdevums – to veiks cita komanda. Jūsu uzdevums ir tikai filtrēšana. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }
Kā optimizēt paziņojumu filtru sistēmas īstenošanu?