Sobes.tech

Java

Nel tuo progetto sono implementate pratiche DevOps o c'è un team che si occupa di automazione e integrazione dei processi di sviluppo e operativi?

Junior — Middle
172

Quali modifiche all'approccio o alle soluzioni apporteresti all'ultimo progetto completato, sapendo quello che sai ora?

Junior — Middle
169

Come è strutturato e distribuito il team nel tuo progetto?

Junior — Middle
163

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.

162

Quali progetti o compiti stai attualmente realizzando?

Junior — Middle
161

Qual è la complessità temporale dell'operazione di aggiunta di un elemento allo stack?

Junior — Middle
159

Come viene determinata la complessità temporale del metodo get nella struttura dati HashMap?

Junior — Middle
157

Come determina un microservizio come contattare un altro servizio nell'approccio di Chiamata Diretta?

Junior — Middle
156

Potresti spiegare cos'è una situazione di deadlock tra thread in un sistema?

Junior — Middle
150

Come si può ottimizzare l'implementazione del sistema di filtraggio delle notifiche?

132

/* 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 }

132
/2