Kotlin
Μίλησε για το sharding βάσεων δεδομένων
// κράτηση(θέση_id, χρήστης_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("Η θέση δεν είναι διαθέσιμη") 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()
Χρησιμοποιήθηκαν συναλλαγές Kafka (ακριβώς μια φορά σημασιολογία);
Πώς λειτουργεί ο μηχανισμός Dirty Checking στο Hibernate;
Έχεις χρησιμοποιήσει HQL, Native Query, JDBC απευθείας; Batching στο Hibernate;
Γιατί ο βελτιστοποιητής ερωτημάτων του Postgres μπορεί να χρησιμοποιεί Seq Scan σε παραγωγή, αλλά Index Scan σε dev/ft με τους ίδιους δείκτες;
Μίλησε για τον αισιόδοξο και τον απαισιόδοξο αποκλεισμό, πότε τους εφαρμόζεις;
Μίλησε για την παρακολούθηση και τα μετρικά στο έργο (Prometheus, Grafana)
Μίλησέ μου για τα επίπεδα απομόνωσης των συναλλαγών
Πώς λύνετε το πρόβλημα ανταγωνιστικής ενημέρωσης μιας οντότητας από δύο Kafka-topics (ένα topic αντικαθιστά τις αλλαγές του άλλου);
Τι κάνει το VACUUM στο PostgreSQL και γιατί εμφανίζονται νεκρές γραμμές;
Μίλησε για διαχωρισμό σε PostgreSQL
Πώς να ελέγξετε το φορτίο στα χερούλια (περιορισμός ρυθμού);
/* ΕΠΙΛΟΓΗ αριστερά.K, αριστερά.V1, δεξιά.V2 ΑΠΟ αριστερά JOIN δεξιά ON αριστερά.K = δεξιά.K; */ public <K extends Comparable<K>, V1, V2> List<Triple<K, V1, V2>> join(List<Pair<K, V1>> αριστερά, List<Pair<K, V2>> δεξιά) { return null; } private static class Pair<A, B> { private A πρώτο; private B δεύτερο; Pair(A πρώτο, B δεύτερο) { this.πρώτο = πρώτο; this.δεύτερο = δεύτερο; } } private static class Triple<A, B, C> { private A πρώτο; private B δεύτερο; private C τρίτο; Triple(A πρώτο, B δεύτερο, C τρίτο) { this.πρώτο = πρώτο; this.δεύτερο = δεύτερο; this.τρίτο = τρίτο; } }
Ξέρεις τι είναι το Service Mesh στο Kubernetes;
Ποιο ήταν το φορτίο στις υπηρεσίες; Ποιες βελτιστοποιήσεις εφαρμόστηκαν;
Πες μου για τον εαυτό σου και την εργασιακή σου εμπειρία
Έχεις χρησιμοποιήσει Kotlin; Έχεις εμπειρία;
/*Δεδομένης μιας συμβολοσειράς, πρέπει να υλοποιηθεί μια λειτουργία για τον έλεγχο της ορθότητας της ένδειξης των παρενθέσεων. Κάθε ανοιχτή παρένθεση πρέπει να έχει μια αντίστοιχη κλειστή παρένθεση. Οι ανοιχτές και κλειστές παρενθέσεις πρέπει να βρίσκονται σε σωστή σειρά. Τύποι παρενθέσεων: "{", "}", "(", ")", "[", "]". Είσοδος: "([]){}[(()())()]" Αποτέλεσμα: true Είσοδος: "[(])" Αποτέλεσμα: false Επειδή οι παρενθέσεις 2 και 3 δηλώνονται λανθασμένα, το κλείσιμο ']' εμφανίζεται πριν από το κλείσιμο '(' */ 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(); }