Sobes.tech

Java

Jaki jest dla ciebie idealny zespół? Jakie są wymagania wobec analityków?

184

Opowiedz o trudnym błędzie lub skomplikowanej modyfikacji w ostatnim projekcie

180

Jak zoptymalizowali wolne zapytania SQL? Jak rozwiązali problem N+1 w Hibernate?

164

Jakie ORM używaliście? Kiedy Hibernate, kiedy JDBC? Czy były Liquibase/Flyway?

163

Dlaczego wybraliście Cassandrę? Jakie alternatywy rozważaliście? Jak je sprawdzaliście?

161

Jakie narzędzia monitorowania, logowania i metryk były używane? Jakie podejście w mikroserwisach?

146

Jak pracowali z Kafka? Czy trzeba było dostosować partycje, konfiguracje? Co się stanie, jeśli konsumenci są mniej niż partycje?

140

Czy był dostęp do monitorowania na różnych obwodach? Jak przebiegał proces wydania?

127

Na co udało Ci się wpłynąć w decyzjach architektonicznych w ostatnim projekcie?

126

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(); }

109