Kas ir jūsu ideāla komanda? Kādi ir analītiķu prasības?
Java
Pastāstiet par sarežģītu kļūdu vai grūtu uzlabojumu jūsu pēdējā projektā
Kā optimizēt lēnas SQL vaicājumus? Kā risinājāt N+1 problēmu Hibernate?
Kāpēc izvēlējāties Cassandra? Kādas alternatīvas apsvērojāt? Kā tās pārbaudījāt?
Kuras ORM tika izmantots? Kad Hibernate, kad JDBC? Vai bija Liquibase/Flyway?
Pastāstiet par savu pieredzi un pēdējo projektu
Kuras monitoringa, žurnāla un metriku rīkus jūs izmantojāt? Kāds pieeja mikroservisos?
Kā jūs strādājāt ar Kafka? Vai bija nepieciešams pielāgot partīcijas, konfigurācijas? Kas notiks, ja patērētāji būs mazāk nekā partijas?
Pastāstiet par hotspot problēmu Cassandra un kā to atrisinājāt
Kuru projektu uzskatāt par svarīgāko sev un kāpēc?
Ko jūs varējāt ietekmēt savā pēdējā projektā arhitektūras risinājumos?
Vai bija piekļuve uzraudzībai dažādos kontūros? Kā norisinājās izlaišanas process?
Uzdevuma apraksts: Ir nepieciešams īstenot REST galapunktu, lai iegūtu konkrēta klienta piederīgo un apmaksāto apdrošināšanas polisi sarakstu. Tā kā sistēmā ir ļoti liels polisiņu skaits, ir jāparedz parametrs rezultāta ierobežošanai. @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(); }