Sobes.tech

Ispričajte o složenom bugu ili teškom proširenju na poslednjem projektu

182

Kako su optimizovali spore SQL upite? Kako su rešili problem N+1 u Hibernate-u?

167

Koje ORM-ove ste koristili? Kada Hibernate, kada JDBC? Da li su postojali Liquibase/Flyway?

165

Zašto ste odabrali Cassandru? Koje alternative ste razmatrali? Kako ste ih proveravali?

163

Реците о вашем искуству и последњем пројекту

151

Koje alate za nadzor, logovanje i metrike ste koristili? Koji pristup u mikroservisima?

146

Kako ste radili sa Kafka? Da li ste morali da podešavate particije, konfiguracije? Šta će se desiti ako su potrošači manje od particija?

140

Da li je postojao pristup monitoringu na različitim konturama? Kako je tekao proces objavljivanja?

127

На шта сте успели да утичете у архитектонским одлукама на последњем пројекту?

126

Opis zadatka: Potrebno je implementirati REST endpoint za dobijanje spiska osiguranih polisa koje pripadaju datom klijentu i koje su plaćene. Pošto u sistemu postoji veoma veliki broj polisa, potrebno je predvideti parametar za ograničenje rezultata. @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