Sobes.tech

Java

Czy w Twoim projekcie wdrożono praktyki DevOps, czy też istnieje zespół zajmujący się automatyzacją i integracją procesów rozwoju i eksploatacji?

Junior — Middle
174

Jakie zmiany w podejściu lub rozwiązaniach wprowadziłbyś w ostatnim zrealizowanym projekcie, wiedząc to, co wiesz teraz?

Junior — Middle
171

Napisz testy dla systemu filtrowania powiadomień z użyciem JUnit 5 i Mockito, obejmujące główne scenariusze: wejście null/puste, powiadomienie ważne, blokada nadawcy, filtrowanie po kanale, deduplikacja.

170

Jak jest zorganizowany i rozłożony zespół w Twoim projekcie?

Junior — Middle
166

Jakie obecnie realizujesz projekty lub zadania?

Junior — Middle
164

Jaka jest złożoność czasowa operacji dodawania elementu do stosu?

Junior — Middle
163

Jak mikroserwis określa, jak skontaktować się z inną usługą w podejściu Direct Call?

Junior — Middle
162

Jak określana jest złożoność czasowa metody get w strukturze danych HashMap?

Junior — Middle
157

Czy mógłbyś wyjaśnić, czym jest sytuacja zakleszczenia wątków w systemie?

Junior — Middle
154

Jak można zoptymalizować implementację systemu filtrowania powiadomień?

137

/* Firma zapewnia usługę masowego wysyłania powiadomień do innych firm. Właściciel produktu zwrócił się z zadaniem stworzenia systemu filtrowania powiadomień z uwzględnieniem preferencji użytkowników. ## Definicje Powiadomienie: - id powiadomienia - typ powiadomienia (EMAIL, SMS, PUSH) - odbiorca (id użytkownika) - tekst wiadomości Odbiorca może mieć ustawienia preferencji: - dozwolone kanały powiadomień (lista typów) - zablokowani nadawcy (lista id nadawców) Historia wysłanych powiadomień: - lista powiadomień wysłanych do użytkownika ## Ważne Ustawienia użytkowników i historia powiadomień są dostarczane przez inne komponenty systemu. Musisz zaprojektować kontrakty do pobierania tych danych. Implementacja przechowywania nie jest wymagana. ## Zadanie Napisać system filtrowania powiadomień, który: - przyjmuje listę powiadomień do filtrowania i id nadawcy - wyklucza powiadomienia niezgodne z preferencjami użytkownika - implementuje ochronę przed duplikatami wiadomości, w tym uwzględniając wiadomości wysłane w ostatnich 24 godzinach. Duplikaty to wiadomości z tym samym id, skierowane do tego samego użytkownika - zwraca przefiltrowaną listę powiadomień gotowych do wysłania. Wysyłka powiadomień nie jest Twoim zadaniem - inny zespół zajmie się wysłaniem przefiltrowanej listy. Twoim zadaniem jest tylko filtrowanie. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }

134
/2