Jaki jest dla ciebie idealny zespół? Jakie są wymagania wobec analityków?
Java
Opowiedz o trudnym błędzie lub skomplikowanej modyfikacji w ostatnim projekcie
Jak zoptymalizowali wolne zapytania SQL? Jak rozwiązali problem N+1 w Hibernate?
Jakie ORM używaliście? Kiedy Hibernate, kiedy JDBC? Czy były Liquibase/Flyway?
Dlaczego wybraliście Cassandrę? Jakie alternatywy rozważaliście? Jak je sprawdzaliście?
Opowiedz o swoim doświadczeniu i ostatnim projekcie
Jakie narzędzia monitorowania, logowania i metryk były używane? Jakie podejście w mikroserwisach?
Jak pracowali z Kafka? Czy trzeba było dostosować partycje, konfiguracje? Co się stanie, jeśli konsumenci są mniej niż partycje?
Opowiedz o problemie hotspot w Cassandra i jak go rozwiązano
Który projekt uważasz za najważniejszy dla siebie i dlaczego?
Czy był dostęp do monitorowania na różnych obwodach? Jak przebiegał proces wydania?
Na co udało Ci się wpłynąć w decyzjach architektonicznych w ostatnim projekcie?
Opis zadania: Należy zaimplementować punkt końcowy REST do pobierania listy polis ubezpieczeniowych należących do danego klienta i opłaconych. Ponieważ w systemie istnieje bardzo duża liczba polis, należy przewidzieć parametr ograniczający wynik. @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(); }