Cu ce baze de date ați lucrat și la ce nivel? Mai multe detalii despre PostgreSQL, Redis, ClickHouse.
Golang
Cum se returnează un obiect de tip error în Go fără a folosi pachetul errors din biblioteca standardă?
Proiectați o schemă SQL pentru un sistem bancar cu tabele de conturi și tranzacții. Ce restricții și indexuri sunt necesare?
Ce se întâmplă după ce introduceți google.com în browser și apăsați Enter? Descrieți întregul proces și participanții.
Explicați structura limitatorului de rată și funcția Allow. Ce parametri de configurare sunt utilizați și pentru ce sunt?
Care este diferența dintre TCP și UDP? Unde sunt utilizate fiecare dintre ele?
Unde și cum se rulează funcția cleanup? Cum se transmite contextul către rate limiter?
Există un microserviciu pentru deducerea fondurilor din soldul utilizatorului? Când se face replicarea serviciului, apare o problemă de condiție de cursă. Cum se poate rezolva această problemă?
Explicați implementarea funcției Allow după corectări. Cum se gestionează cazul primei solicitări de la utilizator?
Corectează implementarea cleanup folosind un ciclu for obișnuit în loc de range. Explică logica finală de curățare.
Prin ce protocol se face solicitarea DNS? Este acesta singurul protocol posibil?
Cum se poate evita problema punctului flotant fără a folosi NUMERIC? Care este o abordare alternativă cu tipul INT?
Propuneți un model de stare pentru tranzacțiile din procesarea plăților. Cum funcționează rambursarea?
Este posibil să se garanteze livrarea datelor prin UDP?
De ce este nevoie de un mutex în limitatorul de rată? Se poate rezolva problema fără mutex, folosind sync.Map?
Explicați procesul de plată cu cardul bancar prin intermediul terminalului: cine sunt participanții implicați și cum are loc interacțiunea dintre ei?
De ce ați ales tipul NUMERIC(18,2) pentru amount? Care sunt alternativele și care este problema cu DOUBLE PRECISION?
Cum organizați o goroutine de fundal pentru a curăța periodic datele învechite din bucket-uri?
Ce este un index în PostgreSQL? Cum ai lucrat cu indexurile și pe ce te-ai bazat pentru a decide crearea unui index?
Implementați logica funcției Allow pentru limitatorul de rată. Cum veți urmări evenimentele și verifica limitele?