O seu projeto implementa práticas de DevOps ou há uma equipa que se dedica à automação e integração dos processos de desenvolvimento e operação?
Java
Que alterações na abordagem ou nas soluções você faria no último projeto realizado, sabendo o que sabe agora?
Escreva testes para o sistema de filtragem de notificações usando JUnit 5 e Mockito, cobrindo os principais cenários: entrada nula/vazia, notificação válida, bloqueio do remetente, filtragem por canal, deduplicação.
Como está estruturada e distribuída a equipa no seu projeto?
Quais projetos ou tarefas está a realizar atualmente?
Qual é a complexidade temporal da operação de adicionar um elemento ao stack?
Como é que um microserviço determina como contactar outro serviço na abordagem de Chamada Direta?
Como é determinada a complexidade temporal do método get na estrutura de dados HashMap?
Poderia explicar o que é uma situação de deadlock entre threads no sistema?
Como otimizar a implementação do sistema de filtragem de notificações?
/* A empresa fornece um serviço de envio massivo de notificações para outros negócios. Um proprietário de produto solicitou a criação de um sistema de filtragem de notificações considerando as preferências dos utilizadores. ## Definições Notificação: - id da notificação - tipo de notificação (EMAIL, SMS, PUSH) - destinatário (id do utilizador) - texto da mensagem O destinatário pode ter configurações de preferências: - canais de notificação permitidos (lista de tipos) - remetentes bloqueados (lista de ids de remetentes) Histórico de notificações enviadas: - lista de notificações enviadas ao utilizador ## Importante As configurações dos utilizadores e o histórico de notificações são fornecidos por outros componentes do sistema. Deve projetar contratos para obter esses dados. Não é necessário implementar o armazenamento. ## Tarefa Escrever um sistema de filtragem de notificações que: - recebe uma lista de notificações para filtrar e o id do remetente - exclui notificações que não correspondem às preferências do utilizador - implementa proteção contra mensagens duplicadas, incluindo as enviadas nas últimas 24 horas. São considerados duplicados mensagens com o mesmo id dirigidas a um mesmo utilizador - devolve a lista filtrada de notificações prontas a enviar. O envio de notificações não faz parte da sua tarefa; outra equipa encarregar-se-á de enviar a lista filtrada. A sua tarefa é apenas filtrar. */ class NotificationFilter { UserSettingsService userSettingsService; NotificationHistoryService notificationHistoryService; public ??? filter(??? senderId, List<???> msgs) { // TODO implement } } interface UserSettingsService { // TODO any functions } interface NotificationHistoryService { // TODO any functions }