Golang
Čo program vypíše? Prečo? func main() { začiatokČasu := time.Now() _, _ = <-worker(), <-worker() println(int(time.Since(začiatokČasu).Seconds())) } func worker() chan int { ch := make(chan int) go func() { time.Sleep(3 * time.Second) ch <- 1 }() return ch }
Je DevOps a analytik tá istá osoba? Bol to dátový analytik alebo full-stack, systémový/biznis analytik?
Rozprávaj mi o primitives synchronizácie v Go.
Čo by si prenášal v tomto kanáli (akú dátovú štruktúru)?
Aké základné princípy objektovo orientovaného programovania poznáte a používate?
/* Vývojár dostal úlohu napísať službu na odosielanie oznámení. Požiadavky: - Metóda Send by mala odosielať správy paralelne. - Nemôže byť vykonaných viac ako maxworkers HTTP požiadaviek súčasne. - Ak aspoň jedno odoslanie zlyhá, ostatné treba zastaviť a vrátiť chybu. - Metóda by mala správne spracovávať zrušenie kontextu. - Všetky zdroje by mali byť správne uvoľnené. - Metóda môže byť volaná konkurenčne z rôznych gorútín. - Client by mal sledovať počet úspešne odoslaných správ. Je potrebné vykonať revíziu kódu, nájsť problémy a opraviť kód.
Aká bola vaša obľúbená stratégia, keď zlyhal alebo prestal odpovedať Elasticsearch cluster? Fungcia vyhľadávania na stránke sa pokazila, alebo bol k dispozícii záložný mechanizmus pre priame požiadavky na PostgreSQL?
Ako použiť select na prácu s viacerými kanálmi súčasne?
Je objem pri zastavení kontajnera odstránený?
Návrh systému šachovej aplikácie: matchmaking, vytváranie herných relácií a zaznamenávanie výsledkov. Uveďte služby, ich interakciu a úložiská dát.
Ako pomáhajú rozhrania pri testovaní (jednotkové testy)?
Ako to urobiť na úrovni Go — ideovo, aby sa odoslala odpoveď používateľovi a súčasne sa odosielali údaje do analytiky?
Povedz mi o indexoch B-stromu a Hash: ako fungujú a kedy sa používajú?
/** * Zlúčiť N kanálov do jedného * * Sú dané n kanálov typu chan int. Je potrebné napísať funkciu, ktorá zlúči všetky dáta **/ // 1. Je potrebné implementovať funkciu na zlúčenie N kanálov do jedného func joinChannels(chs ...<-chan int) <-chan int { mergedCh := make(chan int) // ... return mergedCh } // 2. Vyplňte kanály a, b, c hodnotami // ...
Ako by ste overili, že pridaný index naozaj funguje dobre, najmä v produkcii?
Môžu dva kontajnery obsadiť jeden port hostiteľa?
Popíšte proces inicializácie operačného systému Linux: init proces (PID 1), zavádzač a initramfs.
Ohodnoťte svoje znalosti o Go od 1 do 10.
Čo sú to zombie procesy a ako s nimi bojovať?
Čo sa stane, ak napíšete do zatvoreného kanála v Go?