Kotlin
De ce optimizerul de interogări Postgres poate folosi Seq Scan în producție, dar Index Scan în dev/ft cu aceleași indecși?
Cum se rezolvă problema actualizării concurente a unei entități din două topicuri Kafka (un topic suprascrie modificările celuilalt)?
Ce face VACUUM în PostgreSQL și de ce apar rânduri moarte?
Vorbește despre monitorizare și metrici în proiect (Prometheus, Grafana)
Ai folosit HQL, interogare nativă, JDBC direct? Batch în Hibernate?
Au fost utilizate tranzacții Kafka (semantica exact o dată)?
Explică replicarea în PostgreSQL: master-slave, ce se întâmplă în cazul unei defecțiuni a replicii
Spune-mi mai multe despre serviciul de facturare: ce s-a stocat, cum au interacționat cu contractorul?
// rezervare(scaun_id, user_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("Locul nu este disponibil") 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()
Vorbește despre partiționare în PostgreSQL
Vorbește despre blocarea optimistă și pesimistă, când să le aplici?
/* SELECTARE stânga.K, stânga.V1, dreapta.V2 DIN stânga JOIN dreapta ON stânga.K = dreapta.K; */ public <K extends Comparable<K>, V1, V2> List<Triple<K, V1, V2>> join(List<Pair<K, V1>> stanga, List<Pair<K, V2>> dreapta) { return null; } private static class Pair<A, B> { private A primul; private B al doilea; Pair(A primul, B al doilea) { this.primul = primul; this.al doilea = al doilea; } } private static class Triple<A, B, C> { private A primul; private B al doilea; private C al treilea; Triple(A primul, B al doilea, C al treilea) { this.primul = primul; this.al doilea = al doilea; this.al treilea = al treilea; } }
Știi ce este Service Mesh în Kubernetes?
Vorbește despre nivelurile de izolare ale tranzacțiilor
Care a fost încărcătura pe servicii? Ce optimizări au fost aplicate?
Spuneți-mi despre dvs. și experiența dvs. profesională
Cum să controlezi încărcarea pe mânere (limitarea ratei)?
Ai folosit Kotlin? Ai experiență?
/*Dat fiind un șir, este necesar să implementați o funcție pentru a verifica corectitudinea indicării parantezelor. Fiecare paranteză deschisă trebuie să aibă o paranteză închisă corespunzătoare. Parantezele deschise și cele închise trebuie să fie în ordinea corectă. Tipuri de paranteze: "{", "}", "(", ")", "[", "]". Intrare: "([]){}[(()())()]" Rezultat: true Intrare: "[(])" Rezultat: false Pentru că parantezele 2 și 3 sunt indicate incorect, închizătoarea ']' apare înaintea închizătoarei '(' */ 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(); }