Kotlin
Խոսիր տվյալների բազաների շարդինգի մասին
Կա՞նք օգտագործել Kafka գործարքներ (շահագործման հստակ իմաստով):
Դու օգտագործե՞լ ես HQL, Native Query, JDBC ուղղակիորեն: Բատչինգը Hibernate-ում:
// ամրագրում(կենդանի_համար, օգտվող_համար) 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()
Ինչպես է աշխատում Hibernate-ի Dirty Checking մեխանիզմը?
Պատմիր ինձ գործարքների մեկուսացման մակարդակների մասին
Ինչու՞ Postgres-ի հարցման օպտիմիզատորը կարող է օգտագործել Seq Scan արտադրությունում, բայց Index Scan՝ dev/ft-ում նույն ինդեքսներով։
Ինչպե՞ս վերահսկել բռնակների բեռը (հատկացման սահմանափակում):
Պատմեք օպտիմիստական և պեսիմիստական փակման մասին, երբ դրանք կիրառել պետք է։
Ինչ է անում VACUUM-ը PostgreSQL-ում և ինչու են հայտնվում մահացած տողեր?
Պատմիր նախագծի մոնիտորինգի և մետրիկների մասին (Prometheus, Grafana)
Խոսեք PostgreSQL-ում բաժանման մասին
Ինչպես լուծել երկու Kafka թեմաներից մեկի միավորի մրցակցային թարմացման խնդիրը (մեկ թեման փոխարինում է մյուսի փոփոխությունները):
/* Ընտրություն ձախ.K, ձախ.V1, աջ.V2 Ձախից Միացեք աջի վրա 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.երրորդ = երրորդ; } }
Ի՞նչ էր ծառայությունների բեռը: Ի՞նչ օպտիմիզացիաներ կիրառվեցին։
Օգտագործե՞լ ես Kotlin-ը: Ունե՞ս փորձառություն:
Դու գիտե՞ս, թե ինչ է Service Mesh-ը Kubernetes-ում։
Իմացեք ինձ և իմ աշխատանքային փորձը
/*Տրված է տող, անհրաժեշտ է իրականացնել ֆունկցիա փակագծերի նշման ճիշտությունը ստուգելու համար: Յուրաքանչյուր բացվող փակագիծ պետք է համապատասխան լինի փակվող փակագծին: Բացվող և փակվող փակագծերը պետք է լինեն ճիշտ հերթականությամբ: Փակագծերի տեսակները: "{", "}", "(", ")", "[", "]". Ներմուծում: "([]){}[(()())()]" Արդյունք: 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(); }