Jakie korzyści płyną z pracy w dużej strukturze korporacyjnej?
Java
W jakich przypadkach warto używać natywnych zapytań SQL, a w jakich Hibernate?
select name from employee group by name having COUNT(DISTINCT lang) >= 2;
Jak rozwiązać problem niespójności danych: wywołanie zewnętrzne powiodło się, ale zapis w bazie danych się nie powiódł?
/** * Interfejs do komunikacji z hardware'em bankomatu. */ interface Hardware { /** * Zwraca tablicę z ilością banknotów według nominałów 50, 100, 500, 1000, 5000. * Metoda działa wolno i generuje hałas. * * @return tablica, gdzie każdy element odpowiada ilości banknotów danego nominału. * Na przykład, [10, 20, 30, 40, 50] oznacza: * - 10 banknotów o nominale 50 * - 20 banknotów o nominale 100 * - 30 banknotów o nominale 500 * - 40 banknotów o nominale 1000 * - 50 banknotów o nominale 5000 */ int[] getBillsCounts(); /** * Ładuje do wyjścia wskazane banknoty. * * @param billsCounts tablica z ilością banknotów według nominałów [50, 100, 500, 1000, 5000]. * Na przykład, [0, 1, 0, 2, 0] oznacza: * - 0 banknotów o nominale 50 * - 1 banknot o nominale 100 * - 0 banknotów o nominale 500 * - 2 banknoty o nominale 1000 * - 0 banknotów o nominale 5000 */ void giveBills(int[] billsCounts); } /** * Klasa do implementacji logiki bankomatu. * Tutaj należy napisać kod */ class MyATM { /** * Hardware bankomatu. */ 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; } }
Opowiedz o swoim ostatnim projekcie: czym się zajmowałeś, jakie były zadania, jakiego stosu technologicznego używałeś?
Jak oceniasz inicjatywę VK dotyczącą stworzenia własnej bazy danych i jak oceniasz jej jakość i skuteczność?
Jakie są konsekwencje tworzenia ObjectMapper jako pola klasy (nie przez Spring)?
Jakie ciekawe zadania były w projekcie?
/** * Metoda oblicza, ile punktów zdobył kandydat, * zapisuje wynik w bazie danych i wywołuje callback w zewnętrznym serwisie */ 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); }); }
Jakie są wady wdrożonego rozwiązania dla bankomatu?