Quelle est votre équipe idéale ? Quelles sont les exigences pour les analystes ?
Java
Parlez-moi d'un bug complexe ou d'une amélioration difficile sur votre dernier projet
Comment ont-ils optimisé les requêtes SQL lentes ? Comment ont-ils résolu le problème N+1 dans Hibernate ?
Quels ORM ont été utilisés ? Quand Hibernate, quand JDBC ? Y avait-il Liquibase/Flyway ?
Pourquoi avez-vous choisi Cassandra ? Quelles alternatives avez-vous envisagées ? Comment les avez-vous vérifiées ?
Parlez de votre expérience et de votre dernier projet
Quels outils de surveillance, de journalisation et de métriques avez-vous utilisés ? Quelle approche dans les microservices ?
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 ?
Parlez-moi du problème de hotspot dans Cassandra et comment il a été résolu
Quel projet considérez-vous comme le plus important pour vous et pourquoi?
Sur quoi avez-vous pu influencer dans les décisions architecturales de votre dernier projet?
Y avait-il un accès à la surveillance sur différents circuits ? Comment s'est déroulé le processus de lancement ?
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(); }