Sobes.tech

Java

Quelle est votre équipe idéale ? Quelles sont les exigences pour les analystes ?

184

Parlez-moi d'un bug complexe ou d'une amélioration difficile sur votre dernier projet

180

Comment ont-ils optimisé les requêtes SQL lentes ? Comment ont-ils résolu le problème N+1 dans Hibernate ?

164

Quels ORM ont été utilisés ? Quand Hibernate, quand JDBC ? Y avait-il Liquibase/Flyway ?

162

Pourquoi avez-vous choisi Cassandra ? Quelles alternatives avez-vous envisagées ? Comment les avez-vous vérifiées ?

161

Quels outils de surveillance, de journalisation et de métriques avez-vous utilisés ? Quelle approche dans les microservices ?

146

Comment avez-vous travaillé avec Kafka ? Avez-vous dû ajuster les partitions, les configurations ? Que se passe-t-il si les consommateurs sont moins que les partitions ?

140

Parlez-moi du problème de hotspot dans Cassandra et comment il a été résolu

129

Quel projet considérez-vous comme le plus important pour vous et pourquoi?

127

Sur quoi avez-vous pu influencer dans les décisions architecturales de votre dernier projet?

126

Y avait-il un accès à la surveillance sur différents circuits ? Comment s'est déroulé le processus de lancement ?

126

Description de la tâche : Il est nécessaire de mettre en œuvre un endpoint REST pour obtenir la liste des polices d'assurance appartenant à un client donné et qui sont payées. Étant donné qu'il existe dans le système un très grand nombre de polices, il faut prévoir un paramètre pour limiter le résultat. @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