S jakými databázemi jste pracoval a na jaké úrovni? Více informací o PostgreSQL, Redis, ClickHouse.
Golang
Jak v Go vrátit objekt typu error bez použití balíčku errors ze standardní knihovny?
Navrhněte SQL schéma pro bankovní systém s tabulkami účtů a transakcí. Jaká omezení a indexy jsou nutné?
Co se stane po zadání google.com do prohlížeče a stisknutí Enter? Popište celý proces a účastníky.
Vysvětlete strukturu limitátoru rychlosti a funkci Allow. Jaké konfigurační parametry jsou používány a k čemu slouží?
Jaký je rozdíl mezi TCP a UDP? Kde se každý z nich používá?
Kde a jak spustit funkci cleanup? Jak předat kontext do rate limiteru?
Vysvětlete vaši implementaci funkce Allow po opravách. Jak je řešen případ prvního požadavku uživatele?
Existuje mikroservis pro odečítání prostředků z uživatelského zůstatku? Při replikaci služby se objeví problém race condition. Jak tento problém vyřešit?
Opravte implementaci cleanup pomocí běžného cyklu for místo range. Vysvětlete konečnou logiku čištění.
Jakým protokolem je prováděn DNS dotaz? Je to jediný možný protokol?
Jak se dá vyhnout problému s plovoucí desetinnou čárkou bez použití NUMERIC? Jaký je alternativní přístup s typem INT?
Navrhněte stavový model pro transakce v platebním zpracování. Jak funguje vrácení peněz?
Lze zajistit doručení dat přes UDP?
Proč je v rate limiteru potřeba mutex? Lze problém vyřešit bez mutexu pomocí sync.Map?
Vysvětlete proces platby bankovní kartou přes terminál: kteří účastníci jsou zapojeni a jak probíhá jejich interakce?
Proč jste zvolili typ NUMERIC(18,2) pro amount? Jaké jsou alternativy a v čem je problém s DOUBLE PRECISION?
Jak zorganizovat background gorutinu pro periodické čištění zastaralých dat z bucketů?
Co je to index v PostgreSQL? Jak jste pracovali s indexy a na základě čeho jste se rozhodli je vytvořit?
Implementujte logiku funkce Allow pro limitátor rychlosti. Jak budete sledovat události a kontrolovat limity?