Milyen előnyökkel jár nagy vállalati struktúrában dolgozni?
Java
Milyen esetekben érdemes natív SQL-lekérdezéseket használni, és mikor Hibernate-et?
select name from employee group by name having COUNT(DISTINCT lang) >= 2;
/** * Interfész a bankautomata hardverével való interakcióhoz. */ interface Hardware { /** * Visszaad egy tömböt, amely tartalmazza a bankjegyek számát a 50, 100, 500, 1000, 5000 értékek szerint. * A metódus lassan működik és zajt generál. * * @return tömb, ahol minden elem egy adott címletű bankjegyek számát fejezi ki. * Például, [10, 20, 30, 40, 50] jelentése: * - 10 bankjegy 50 rubel * - 20 bankjegy 100 rubel * - 30 bankjegy 500 rubel * - 40 bankjegy 1000 rubel * - 50 bankjegy 5000 rubel */ int[] getBillsCounts(); /** * Betölti a kijelzőbe a megadott bankjegyeket. * * @param billsCounts tömb, amely tartalmazza a bankjegyek számát a [50, 100, 500, 1000, 5000] címletek szerint. * Például, [0, 1, 0, 2, 0] jelentése: * - 0 bankjegy 50 rubel * - 1 bankjegy 100 rubel * - 0 bankjegy 500 rubel * - 2 bankjegy 1000 rubel * - 0 bankjegy 5000 rubel */ void giveBills(int[] billsCounts); } /** * A bankautomata működésének logikáját megvalósító osztály. * Itt kell írni a kódot */ class MyATM { /** * A hardver része. */ 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; } }
Mesélj a legutóbbi projektedről: mivel foglalkoztál, mik voltak a feladatok, milyen technológiát használtál?
Hogyan oldja meg az adatok inkonzisztenciájának problémáját: a külső hívás sikeres volt, de az adatbázisba mentés sikertelen volt?
Hogyan értékeli a VK saját adatbázis létrehozására irányuló kezdeményezését, és hogyan értékelné annak minőségét és hatékonyságát?
Mi a következménye annak, ha ObjectMapper-t osztálymezőként hozunk létre (nem Spring segítségével)?
Milyen érdekes feladatok voltak a projektben?
/** * A metódus kiszámítja, hogy hány pontot szerzett a jelölt, * elmenti az eredményt az adatbázisba, és meghív egy callback-et egy külső szolgáltatásban */ 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); }); }
Mik a beépített megoldás hátrányai az ATM-hez?