Sobes.tech

Java

Votre projet met-il en œuvre des pratiques DevOps ou disposez-vous d'une équipe qui s'occupe de l'automatisation et de l'intégration des processus de développement et d'exploitation?

Junior — Middle
172

Quels changements dans l'approche ou les solutions apporteriez-vous au dernier projet réalisé, en sachant ce que vous savez maintenant?

Junior — Middle
170

Comment l'équipe est-elle structurée et répartie dans votre projet?

Junior — Middle
163

Écrivez des tests pour le système de filtrage des notifications en utilisant JUnit 5 et Mockito, couvrant les scénarios principaux : entrée nulle/vide, notification valide, blocage de l'expéditeur, filtrage par canal, déduplication.

163

Quels projets ou tâches réalisez-vous actuellement?

Junior — Middle
161

Quelle est la complexité temporelle de l'opération d'ajout d'un élément à la pile?

Junior — Middle
161

Comment un microservice détermine-t-il comment contacter un autre service dans l'approche d'appel direct ?

Junior — Middle
158

Comment la complexité temporelle de la méthode get dans la structure de données HashMap est-elle déterminée?

Junior — Middle
157

Pourriez-vous expliquer ce qu'est une situation de blocage mutuel des threads dans un système?

Junior — Middle
153

Comment peut-on optimiser la mise en œuvre du système de filtrage des notifications?

134

/* L'entreprise fournit un service d'envoi massif de notifications à d'autres entreprises. Un propriétaire de produit a demandé de créer un système de filtrage des notifications en tenant compte des préférences des utilisateurs. ## Définitions Notification: - id de la notification - type de notification (EMAIL, SMS, PUSH) - destinataire (id de l'utilisateur) - texte du message Le destinataire peut avoir des paramètres de préférences: - canaux de notification autorisés (liste de types) - expéditeurs bloqués (liste d'ids d'expéditeurs) Historique des notifications envoyées: - liste des notifications envoyées à l'utilisateur ## Important Les paramètres des utilisateurs et l'historique des notifications sont fournis par d'autres composants du système. Vous devez concevoir des contrats pour obtenir ces données. Il n'est pas nécessaire de faire de stockage. ## Tâche Écrire un système de filtrage des notifications qui: - reçoit une liste de notifications à filtrer et l'id de l'expéditeur - exclut les notifications qui ne correspondent pas aux préférences de l'utilisateur - met en œuvre une protection contre les messages en double, y compris ceux envoyés dans les dernières 24 heures. Les doublons sont considérés comme des messages avec le même id destinés à un même utilisateur - retourne la liste filtrée de notifications prêtes à être envoyées. L'envoi des notifications ne fait pas partie de votre tâche; une autre équipe s'en chargera. Votre tâche est uniquement le filtrage. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }

132
/2