Sobes.tech

Java

Ar reaktyvinis kodas su sinchroninėmis transakcijomis yra gerai suderinamas?

163

Kaip išspręsti duomenų nesutapimo problemą: išorinis skambutis sėkmingas, tačiau įrašymas į duomenų bazę nepavyko?

157

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

157

Kokiais atvejais verta naudoti natūralias SQL užklausas, o kokiais - Hibernate?

156

/** * Sąsaja sąsajai su bankomato aparatūros dalimi. */ interface Hardware { /** * Grąžina masyvą su banknotų skaičiumi pagal nominalus 50, 100, 500, 1000, 5000. * Metodas veikia lėtai ir sukelia triukšmą. * * @return masyvas, kuriame kiekvienas elementas atitinka tam tikro nominalo banknotų kiekį. * Pavyzdžiui, [10, 20, 30, 40, 50] reiškia: * - 10 banknotų po 50 rublių * - 20 banknotų po 100 rublių * - 30 banknotų po 500 rublių * - 40 banknotų po 1000 rublių * - 50 banknotų po 5000 rublių */ int[] getBillsCounts(); /** * Užkrauna į išdavimo dėžutę nurodytus banknotus. * * @param billsCounts masyvas su banknotų kiekiais pagal nominalus [50, 100, 500, 1000, 5000]. * Pavyzdžiui, [0, 1, 0, 2, 0] reiškia: * - 0 banknotų po 50 rublių * - 1 banknotą po 100 rublių * - 0 banknotų po 500 rublių * - 2 banknotus po 1000 rublių * - 0 banknotų po 5000 rublių */ void giveBills(int[] billsCounts); } /** * Klasė, kuri realizuoja bankomato darbo logiką. * Čia reikia rašyti kodą */ class MyATM { /** * Bankomato aparatūros dalis. */ 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; } }

155

Papaskink apie savo paskutinį projektą: ką veikėte, kokie buvo uždaviniai, kokį technologijų rinkinį naudojote?

152

Kaip vertinate VK iniciatyvą sukurti savo duomenų bazę ir kaip įvertintumėte jos kokybę ir efektyvumą?

Junior — Middle
152

Kokios yra pasekmės kurti ObjectMapper kaip klasės lauką (ne per Spring)?

145

/** * Metodas skaičiuoja, kiek taškų kandidatas uždirbo, * išsaugo rezultatą duomenų bazėje ir iškviečia callback išorinėje paslaugoje */ 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); }); }

134
/2