Zijn er in uw project DevOps-praktijken geïmplementeerd of is er een team dat zich bezighoudt met automatisering en integratie van ontwikkelings- en operationele processen?
Java
Welke veranderingen in aanpak of oplossingen zou je aanbrengen in het laatste voltooide project, wetende wat je nu weet?
Hoe is het team in uw project gestructureerd en verdeeld?
Schrijf tests voor het notificatiefilteringssysteem met behulp van JUnit 5 en Mockito, die de belangrijkste scenario's dekken: null/leeg invoer, geldige notificatie, afzenderblokkering, filtering op kanaal, deduplicatie.
Wat is de tijdcomplexiteit van de operatie om een element aan de stack toe te voegen?
Welke huidige projecten of taken voert u momenteel uit?
Hoe wordt de tijdcomplexiteit van de methode get in de datastructuur HashMap bepaald?
Hoe bepaalt een microservice hoe hij contact opneemt met een andere service in de Direct Call-aanpak?
Kunt u uitleggen wat een deadlock-situatie tussen threads in het systeem is?
Hoe kunt u de implementatie van het notificatiefilteringssysteem optimaliseren?
/* Het bedrijf biedt een massale notificatieservice voor andere bedrijven. Een product owner heeft de taak gekregen om een notificatiefilteringssysteem te maken dat rekening houdt met de voorkeuren van gebruikers. ## Definities Notificatie: - notificatie-ID - type notificatie (EMAIL, SMS, PUSH) - ontvanger (gebruikers-ID) - berichttekst De ontvanger kan voorkeurinstellingen hebben: - toegestane notificatiekanalen (lijst van types) - geblokkeerde afzenders (lijst van afzender-ID's) Verzonden notificatiegeschiedenis: - lijst van notificaties die aan de gebruiker zijn verzonden ## Belangrijk Gebruikersinstellingen en verzonden geschiedenis worden geleverd door andere systeemcomponenten. U moet contracten ontwerpen om deze gegevens op te halen. Opslagimplementatie is niet nodig. ## Taak Schrijf een notificatiefiltersysteem dat: - ontvangt een lijst van notificaties om te filteren en de afzender-ID - sluit notificaties uit die niet overeenkomen met de voorkeuren van de gebruiker - implementeert bescherming tegen duplicaten, inclusief berichten die in de laatste 24 uur zijn verzonden. Duplicaten worden beschouwd als berichten met dezelfde ID gericht aan dezelfde gebruiker - retourneert de gefilterde lijst van notificaties die klaar zijn voor verzending. Het verzenden van notificaties is niet jouw taak; een ander team zal de verzending afhandelen. Jouw taak is alleen filtering. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }