Sobes.tech

Da li je reaktivni kod sa sinhronim transakcijama dobro kompatibilan?

161

U kojim slučajevima treba koristiti nativne SQL upite, a u kojim Hibernate?

154

select name from employee group by name having COUNT(DISTINCT lang) >= 2;

154

Kako rešiti problem nekonzistentnosti podataka: spoljašnji poziv je bio uspešan, ali čuvanje u bazu podataka je pala?

154

/** * Интерфејс за интеракцију са хардвером банкомата. */ interface Hardware { /** * Враћа низ са бројем новчића по номиналима 50, 100, 500, 1000, 5000. * Метода ради споро и ствара буку. * * @return низ где сваки елемент одговара броју новчића одређеног номинала. * На пример, [10, 20, 30, 40, 50] значи: * - 10 новчића од 50 рубаља * - 20 новчића од 100 рубаља * - 30 новчића од 500 рубаља * - 40 новчића од 1000 рубаља * - 50 новчића од 5000 рубаља */ int[] getBillsCounts(); /** * Учитава у излазни кутију наведене новчиће. * * @param billsCounts низ са бројем новчића по номиналима [50, 100, 500, 1000, 5000]. * На пример, [0, 1, 0, 2, 0] значи: * - 0 новчића од 50 * - 1 новчић од 100 * - 0 новчића од 500 * - 2 новчића од 1000 * - 0 новчића од 5000 */ void giveBills(int[] billsCounts); } /** * Класа за имплементацију логике банкомата. * Овде треба да се напише код */ class MyATM { /** * Хардвер банкомата. */ Hardware hardware; public boolean withdraw(int amount) { int[] counts = hardware.getBillsCounts(); int[] nom = {50, 100, 500, 1000, 5000}; int[] toGive = new int[5]; for (int i = 4; i >= 0; i--) { int needed = amount / nom[i]; int use = Math.min(needed, counts[i]); toGive[i] = use; amount -= use * nom[i]; } if (amount != 0) { return false; } hardware.giveBills(toGive); return true; } }

153

Ispričaj o svom posljednjem projektu: čime si se bavio, koje su bile zadatke, koji je bio stack tehnologija?

151

Kako ocenjujete inicijativu VK-a da kreira sopstvenu bazu podataka i kako biste ocenili njen kvalitet i efikasnost?

Junior — Middle
148

Koje su posledice kreiranja ObjectMapper kao polja klase (ne putem Springa)?

143

/** * Metoda izračunava koliko je bodova kandidat osvojio, * čuva rezultat u bazi podataka i poziva callback u spoljnjem servisu */ public void process(Candidate c) { transactionTemplate.executeWithoutResult(status -> { Score s = interviewScoreMLService.compute(c); String body = objectMapper.writeValueAsString(Map.of(c.getName(), s)); Mono<ResponseEntity<Void>> request = WebClient.create() .post() .body(BodyInserters.fromValue(body)) .retrieve() .toBodilessEntity(); scoreRepository.saveScore(s); }); }

131
/2