Ar reaktyvinis kodas su sinchroninėmis transakcijomis yra gerai suderinamas?
Java
Kaip išspręsti duomenų nesutapimo problemą: išorinis skambutis sėkmingas, tačiau įrašymas į duomenų bazę nepavyko?
select name from employee group by name having COUNT(DISTINCT lang) >= 2;
Kokiais atvejais verta naudoti natūralias SQL užklausas, o kokiais - Hibernate?
/** * 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; } }
Papaskink apie savo paskutinį projektą: ką veikėte, kokie buvo uždaviniai, kokį technologijų rinkinį naudojote?
Kaip vertinate VK iniciatyvą sukurti savo duomenų bazę ir kaip įvertintumėte jos kokybę ir efektyvumą?
Kokios yra pasekmės kurti ObjectMapper kaip klasės lauką (ne per Spring)?
Kokios įdomios užduotys buvo projekte?
/** * 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); }); }
Kokios yra įgyvendinto sprendimo trūkumai bankomato atžvilgiu?