Sobes.tech

Каква е вашата идеална екипировка? Какви са изискванията към анализаторите?

182

Разкажете за сложен бъг или трудна доработка в последния ви проект

178

Как оптимизираха бавните SQL заявки? Как решиха проблема N+1 в Hibernate?

164

Кои ORM използвахте? Кога Hibernate, кога JDBC? Имаше ли Liquibase/Flyway?

160

Защо избрахте Cassandra? Какви алтернативи разглеждахте? Как ги проверихте?

159

Разкажете за своя опит и последния си проект

150

Какви инструменти за мониторинг, логване и метрики са използвани? Какъв подход в микросервизите?

144

Как работихте с Kafka? Трябваше ли да настройвате партиции, конфигурации? Какво се случва, ако потребителите са по-малко от партициите?

138

Кой проект смятате за най-значим за вас и защо?

126

Разкажете за проблема с hotspot в Cassandra и как беше решен

125

На какво успяхте да повлияете в архитектурните решения на последния ви проект?

124

Имаше ли достъп до мониторинг на различни контури? Как протече процесът на пускане?

121

Описание на задачата: Необходимо е да се реализира 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(); }

106