Каква е вашата идеална екипировка? Какви са изискванията към анализаторите?
Java
Разкажете за сложен бъг или трудна доработка в последния ви проект
Как оптимизираха бавните SQL заявки? Как решиха проблема N+1 в Hibernate?
Кои ORM използвахте? Кога Hibernate, кога JDBC? Имаше ли Liquibase/Flyway?
Защо избрахте Cassandra? Какви алтернативи разглеждахте? Как ги проверихте?
Разкажете за своя опит и последния си проект
Какви инструменти за мониторинг, логване и метрики са използвани? Какъв подход в микросервизите?
Как работихте с Kafka? Трябваше ли да настройвате партиции, конфигурации? Какво се случва, ако потребителите са по-малко от партициите?
Кой проект смятате за най-значим за вас и защо?
Разкажете за проблема с hotspot в Cassandra и как беше решен
На какво успяхте да повлияете в архитектурните решения на последния ви проект?
Имаше ли достъп до мониторинг на различни контури? Как протече процесът на пускане?
Описание на задачата: Необходимо е да се реализира REST endpoint за получаване на списък с полици за застраховка, които принадлежат на даден клиент и са платени. Тъй като в системата съществува много голям брой полици, трябва да се предвиди параметър за ограничаване на резултата. @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(); }