Sobes.tech

Java

O que é uma equipa ideal para si? Quais são os requisitos para os analistas?

185

Fale sobre um bug complicado ou uma melhoria difícil no seu último projeto

182

Como otimizaram consultas SQL lentas? Como resolveram o problema N+1 no Hibernate?

168

Por que escolheram o Cassandra? Quais alternativas consideraram? Como as verificaram?

167

Que ORM foram utilizados? Quando Hibernate, quando JDBC? Houve Liquibase/Flyway?

166

Que ferramentas de monitoramento, logging e métricas foram usadas? Qual abordagem em microsserviços?

147

Como trabalhou com Kafka? Foi necessário ajustar partições, configurações? O que acontece se os consumidores forem menos que as partições?

144

Houve acesso à monitorização em diferentes circuitos? Como foi o processo de lançamento?

128

Em que conseguiu influenciar nas decisões arquitetónicas do seu último projeto?

126

Descrição da tarefa: É necessário implementar um endpoint REST para obter a lista de apólices de seguro que pertencem a um cliente específico e que estão pagas. Como há um número muito grande de apólices no sistema, deve-se prever um parâmetro para limitar o resultado. @RestController public class ClientController { @Value("policy.limit") private int policyLimit; @Autowired private PolicyService policyService; @RequestMapping(path = "client/{clientId}/policies", method = RequestMethod.POST) public Response getClientPolicies(@PathVariable("clientId") String clientId) { List<PolicyDTO> policies = getPolicies().stream() .limit(policyLimit) .filter(p -> p.getClientIds().contains(clientId)) .filter(p -> p.isPaid()) .toList(); return new Response(policies); } @Transactional private List<PolicyDTO> getPolicies() { return policyService.getPolicies(); } @Data @AllArgsConstructor public class Response { private List<PolicyDTO> policies; } @Data public class PolicyDTO { private String id; private String name; private List<String> clientId; private Boolean isPaid; } @RequiredArgsConstructor @Component public class PolicyService { private PolicyDbRepository repository; List<PolicyDTO> getPolicies() { return repository.getPolicies(); } } public interface PolicyDbRepository { List<PolicyDTO> getPolicies(); }

109