Nel tuo progetto sono implementate pratiche DevOps o c'è un team che si occupa di automazione e integrazione dei processi di sviluppo e operativi?
Java
Quali modifiche all'approccio o alle soluzioni apporteresti all'ultimo progetto completato, sapendo quello che sai ora?
Come è strutturato e distribuito il team nel tuo progetto?
Scrivi test per il sistema di filtraggio delle notifiche utilizzando JUnit 5 e Mockito, coprendo gli scenari principali: input nullo/vuoto, notifica valida, blocco del mittente, filtraggio per canale, deduplicazione.
Quali progetti o compiti stai attualmente realizzando?
Qual è la complessità temporale dell'operazione di aggiunta di un elemento allo stack?
Come viene determinata la complessità temporale del metodo get nella struttura dati HashMap?
Come determina un microservizio come contattare un altro servizio nell'approccio di Chiamata Diretta?
Potresti spiegare cos'è una situazione di deadlock tra thread in un sistema?
Come si può ottimizzare l'implementazione del sistema di filtraggio delle notifiche?
/* L'azienda fornisce un servizio di invio massivo di notifiche ad altre aziende. Un product owner ha richiesto di creare un sistema di filtraggio delle notifiche considerando le preferenze degli utenti. ## Definizioni Notifica: - id della notifica - tipo di notifica (EMAIL, SMS, PUSH) - destinatario (id dell'utente) - testo del messaggio Il destinatario può avere impostazioni di preferenza: - canali di notifica consentiti (lista di tipi) - mittenti bloccati (lista di id mittenti) Storia delle notifiche inviate: - lista delle notifiche inviate all'utente ## Importante Le impostazioni degli utenti e la storia delle notifiche sono fornite da altri componenti del sistema. Devi progettare contratti per ottenere questi dati. Non è necessario implementare lo storage. ## Compito Scrivere un sistema di filtraggio delle notifiche che: - riceve una lista di notifiche da filtrare e l'id del mittente - esclude le notifiche che non corrispondono alle preferenze dell'utente - implementa protezione contro i duplicati, considerando anche i messaggi inviati nelle ultime 24 ore. I duplicati sono considerati messaggi con lo stesso id indirizzati allo stesso utente - restituisce la lista filtrata di notifiche pronte all'invio. L'invio delle notifiche non è parte del vostro compito; un altro team si occuperà di inviare la lista filtrata. Il vostro compito è solo il filtraggio. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }