Sobes.tech

Java

Vertel over een complexe bug of een moeilijke verbetering in je laatste project

183

Waarom hebben jullie voor Cassandra gekozen? Welke alternatieven hebben jullie overwogen? Hoe hebben jullie ze getest?

173

Hoe hebben ze trage SQL-query's geoptimaliseerd? Hoe hebben ze het N+1-probleem in Hibernate opgelost?

168

Welke ORM's werden gebruikt? Wanneer Hibernate, wanneer JDBC? Waren Liquibase/Flyway aanwezig?

167

Welke monitoring-, logging- en metriekhulpmiddelen werden gebruikt? Welke aanpak in microservices?

151

Hoe werkte je met Kafka? Moest je partitions, configuraties aanpassen? Wat gebeurt er als er minder consumers zijn dan partitions?

147

Vertel over het probleem met de hotspot in Cassandra en hoe het is opgelost

130

Was er toegang tot monitoring op verschillende circuits? Hoe verliep het releaseproces?

129

Waarop kon u invloed uitoefenen in de architectonische beslissingen van uw laatste project?

127

Taakomschrijving: Het is nodig om een REST-endpoint te implementeren voor het verkrijgen van de lijst van verzekeringspolissen die behoren tot een gegeven klant en die betaald zijn. Aangezien er in het systeem een zeer groot aantal polissen bestaat, moet er een parameter worden voorzien om het resultaat te beperken. @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