Ce înseamnă pentru tine o echipă ideală? Care sunt cerințele pentru analiști?
Java
Vorbiți despre o eroare complicată sau o îmbunătățire dificilă în ultimul dvs. proiect
Cum au optimizat interogările SQL lente? Cum au rezolvat problema N+1 în Hibernate?
Ce ORM-uri au fost utilizate? Când Hibernate, când JDBC? Au fost Liquibase/Flyway?
De ce ați ales Cassandra? Ce alternative ați luat în considerare? Cum le-ați verificat?
Povestiți despre experiența dvs. și ultimul proiect
Ce instrumente de monitorizare, logare și metrici au fost utilizate? Ce abordare în microservicii?
Cum ați lucrat cu Kafka? A fost nevoie să ajustați partiții, configurații? Ce se întâmplă dacă consumatorii sunt mai puțini decât partițiile?
Care proiect consideri cel mai important pentru tine și de ce?
Lați-ai putut influența deciziile arhitecturale din ultimul proiect?
Povesti despre problema cu hotspot-ul în Cassandra și cum a fost rezolvată
A fost acces la monitorizare pe diferite circuite? Cum a decurs procesul de lansare?
Descrierea sarcinii: Este necesar să implementați un endpoint REST pentru a obține lista polițelor de asigurare care aparțin unui client dat și sunt plătite. Deoarece în sistem există un număr foarte mare de polițe, trebuie prevăzut un parametru pentru limitarea rezultatului. @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(); }