Sind in Ihrem Projekt DevOps-Praktiken implementiert oder gibt es ein Team, das sich mit Automatisierung und Integration von Entwicklungs- und Betriebsprozessen beschäftigt?
Java
Welche Änderungen am Ansatz oder an den Lösungen würden Sie im letzten abgeschlossenen Projekt vornehmen, wenn Sie jetzt wissen, was Sie wissen?
Schreiben Sie Tests für das Benachrichtigungsfilterungssystem mit JUnit 5 und Mockito, die die wichtigsten Szenarien abdecken: null/leere Eingabe, gültige Benachrichtigung, Absenderblockierung, Filterung nach Kanal, Duplikatentfernung.
Wie ist das Team in Ihrem Projekt strukturiert und verteilt?
Welche aktuellen Projekte oder Aufgaben setzen Sie derzeit um?
Wie ist die zeitliche Komplexität der Operation zum Hinzufügen eines Elements zum Stack?
Wie bestimmt ein Microservice, wie er mit einem anderen Dienst im Direct Call-Ansatz kommuniziert?
Wie wird die zeitliche Komplexität der Methode get in der Datenstruktur HashMap bestimmt?
Könnten Sie erklären, was eine Deadlock-Situation von Threads in einem System ist?
Wie kann die Implementierung des Benachrichtigungsfiltersystems optimiert werden?
/* Das Unternehmen bietet einen Massensendungsservice für Benachrichtigungen an andere Unternehmen an. Ein Product Owner hat die Aufgabe gestellt, ein Benachrichtigungsfiltersystem zu erstellen, das die Präferenzen der Nutzer berücksichtigt. ## Definitionen Benachrichtigung: - Benachrichtigungs-ID - Benachrichtigungstyp (EMAIL, SMS, PUSH) - Empfänger (Benutzer-ID) - Nachrichtentext Der Empfänger kann Präferenz-Einstellungen haben: - erlaubte Benachrichtigungskanäle (Liste von Typen) - blockierte Absender (Liste von Absender-IDs) Versandhistorie: - Liste der an den Nutzer gesendeten Benachrichtigungen ## Wichtig Die Nutzereinstellungen und die Versandhistorie werden von anderen Systemkomponenten bereitgestellt. Sie müssen Verträge entwerfen, um diese Daten zu erhalten. Speicherimplementierung ist nicht erforderlich. ## Aufgabe Schreiben Sie ein Benachrichtigungsfiltersystem, das: - eine Liste von Benachrichtigungen zum Filtern und eine Absender-ID erhält - Benachrichtigungen ausschließt, die nicht den Nutzerpräferenzen entsprechen - Schutz vor Duplikaten implementiert, einschließlich der in den letzten 24 Stunden gesendeten Nachrichten. Duplikate sind Nachrichten mit derselben ID, die an denselben Nutzer gerichtet sind - gibt die gefilterte Liste der Benachrichtigungen zurück, die versandbereit sind. Der Versand der Benachrichtigungen ist nicht Teil Ihrer Aufgabe; ein anderes Team kümmert sich um den Versand der gefilterten Liste. Ihre Aufgabe ist nur das Filtern. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }