Golang
Jaké metodiky návrhu systémů preferujete při vytváření řešení?
Jsou rozhraní bez metodů a rozhraní, které umožňuje jakékoli typy, ekvivalentní?
Jaké metody lze použít ke zvýšení efektivity zpracování velkého objemu příchozích požadavků?
Jaké metody rozdělování dat podle shardů znáte?
Jak by měly být rozhraní deklarována v programování?
Jaké metody a nástroje používáš ke zvýšení efektivity vykonávání dotazů v databázích?
typ someInterface rozhraní { someFunc() } type A struct { } func(a A) someFunc() { } type B struct { A } type C struct { some A }
Jakými metodami a nástroji jste ověřovali správnost a kvalitu svého kódu?
Může použití Range s kanálem vést k nekonečné smyčce v programu?
Pověz mi o CQRS
Jaký je účel rozdělení dat na části v databázích?
Jak je v systému prováděno rozdělení a správa paměti pomocí Memory Allocator?
Jak zajistí, aby při vkládání duplicitního záznamu do tabulky s unikátním klíčem podle telefonního čísla místo chyby došlo k aktualizaci stávajícího záznamu (INSERT ON CONFLICT DO UPDATE)?
Vysvětlete koncept krádeže práce (Work-Stealing) a jeho použití v paralelních výpočtech.
Pokud píšeme do mastera velkým tokem a čteme z replik, jak dochází ke synchronizaci mezi masterem a replikou?
Lze obalit libovolný fragment kódu do složených závorek bez omezení?
Můžete uvést příklady SQL dotazů, které jste použili nebo psali?
Jak správně vybrat datový typ pro uložení nákladů s ohledem na kopiky v systému?
Jak lze měřit a analyzovat výkon transakcí v systému?
/* Nejmenší společný předek v stromu s pamětí O(1) Popis Dán binární strom (ne vyhledávací): struct Node { Node* parent; Node* left; Node* right; } Je třeba napsat funkci, která pro dvě zadané vrcholy vrátí jejich nejmenší (nejbližší) společný předek: Node* Lca (Node* a, Node* b); */