Kotlin
Jak vyřešit problém konkurenční aktualizace jedné entity ze dvou Kafka témat (jedno téma přepisuje změny druhého)?
Použil jsi HQL, nativní dotazy, JDBC přímo? Batching v Hibernate?
Pověz o monitorování a metrikách v projektu (Prometheus, Grafana)
Byly použity transakce Kafka (semantika přesně jednou)?
Pověz o shardování databází
Jak funguje mechanismus Dirty Checking v Hibernate?
Vysvětli replikaci v PostgreSQL: master-slave, co se stane při selhání repliky
Řekni mi víc o službě fakturace: co se ukládalo, jak komunikovali s dodavatelem?
// rezervace(sedadlo_id, uzivatel_id) PostgreSQL Begin Transaction(read_commited) seat = select * from seats where id = seat_id for update if(seat == null || seat.status == "booked") rollback return error("Sedadlo není dostupné") insert into bookings (user_id, seat_id, status, created_at) values (user_id, ...) update seats set status = 'booked' where id = seat_id commit return success()
Víš, co je Service Mesh v Kubernetes?
/* VÝBĚR vlevo.K, vlevo.V1, vpravo.V2 Z vlevo JOIN vpravo ON vlevo.K = vpravo.K; */ public <K extends Comparable<K>, V1, V2> List<Triple<K, V1, V2>> join(List<Pair<K, V1>> vlevo, List<Pair<K, V2>> vpravo) { return null; } private static class Pair<A, B> { private A první; private B druhý; Pair(A první, B druhý) { this.první = první; this.druhý = druhý; } } private static class Triple<A, B, C> { private A první; private B druhý; private C třetí; Triple(A první, B druhý, C třetí) { this.první = první; this.druhý = druhý; this.třetí = třetí; } }
Pověz o partitioningu v PostgreSQL
Pověz mi o úrovních izolace transakcí
Jaká byla zátěž na služby? Jaké optimalizace byly použity?
Pověz mi o optimistických a pesimistických zámcích, kdy je používat?
Povězte mi o sobě a své pracovní zkušenosti
/*Dána je řetězec, je třeba implementovat funkci pro kontrolu správnosti označení závorek. Každá otevírací závorka musí odpovídat odpovídající uzavírací závorce. Otevírací a uzavírací závorky musí být ve správném pořadí. Typy závorek: "{", "}", "(", ")", "[", "]". Vstup: "([]){}[(()())()]" Výsledek: true Vstup: "[(])" Výsledek: false Protože závorky 2 a 3 jsou nesprávně uvedeny, uzavírací ']' se objevuje dříve než uzavírací '(' */ public boolean check(String s){ Deque<Character> stack = new ArrayDeque<>(); Map<Character, Character> map = Map.of( ')', '(', ']', '[', '}', '{' ); // ((( for( char c : s.toCharArray()){ if(map.containsValue(c)){ stack.push(c); } else if(map.containsKey(c)){ if( stack.isEmpty() || stack.pop() != map.get(c)){ return false; } } } return stack.isEmpty(); }
Jak kontrolovat zatížení na rukojetích (omezení rychlosti)?
Použil jsi Kotlin? Máš zkušenosti?