S akými databázami ste pracovali a na akej úrovni? Viac informácií o PostgreSQL, Redis, ClickHouse.
Golang
Ako v Go vrátiť objekt typu error bez použitia balíka errors zo štandardnej knižnice?
Navrhnite SQL schému pre bankový systém s tabuľkami účtov a transakcií. Aké obmedzenia a indexy sú potrebné?
Čo sa deje po zadaní google.com do prehliadača a stlačení Enter? Opíšte celý proces a účastníkov.
Vysvetlite štruktúru limitéra rýchlosti a funkciu Allow. Aké konfiguračné parametre sa používajú a na čo slúžia?
Kde a ako spustiť funkciu cleanup? Ako odovzdať kontext do rate limiteru?
Aký je rozdiel medzi TCP a UDP? Kde sa každý z nich používa?
Opravte implementáciu cleanup pomocou bežného cyklu for namiesto range. Vysvetlite konečnú logiku čistenia.
Existuje mikroservis na odštevanje sredstev z računa uporabnika? Pri replikaciji storitve se pojavi problem race condition. Kako rešiti ta problem?
Vysvetlite vašu implementáciu funkcie Allow po opravách. Ako sa spracúva prípad prvého požiadavky od používateľa?
Po akom protokole sa vykonáva DNS dopyt? Je to jediný možný protokol?
Ako sa dá vyhnúť problému s plávajúcou desatinnou čiarkou bez použitia NUMERIC? Aký je alternatívny prístup s typom INT?
Navrhnite model stavu pre transakcij v spracovaní platieb. Kako deluje vračilo denarja?
Prečo je v rate limiteru potrebný mutex? Je možné problém vyriešiť bez mutexu pomocou sync.Map?
Je možné zabezpečiť doručenie dát cez UDP?
Vysvetlite proces platby bankovou kartou cez terminál: ktorí účastníci sú zapojení a ako prebieha ich interakcia?
Prečo ste zvolili typ NUMERIC(18,2) pre amount? Aké sú alternatívy a v čom je problém s DOUBLE PRECISION?
Ako zorganizovať background goroutine na periodické čistenie zastaraných údajov z bucketov?
Čo je index v PostgreSQL? Ako ste pracovali s indexami a na základe čoho ste sa rozhodli ich vytvoriť?
Implementujte logiku funkcie Allow pre limitér rýchlosti. Ako budete sledovať udalosti a kontrolovať limity?