Golang
Jak byly úkoly rozděleny uvnitř týmu?
Proč je přístup Go k vícenásobnému zpracování lepší než v jiných jazycích?
Povězte nám o své zkušenosti s vysoce zatíženými systémy. Museli jste řešit úkoly spojené s rozdělením a vyvážením provozu?
Pokud operace trvá 10-12 minut a probíhá aktivní zápis a data se mění, nebyly žádné vedlejší účinky?
Jaká je složitost algoritmu z hlediska času a paměti?
Povězte o úrovních izolace transakcí: Read Uncommitted, Read Committed, Repeatable Read, Serializable.
[jméno] se zeptal: pověz mi o primitives synchronizace v GoLang.
Nyní chceme jít na HeadHunter a hledat kandidáty podle filtrů — jak to architektonicky navrhnout?
Odkud data pocházela? Posílali je logistici nebo jak?
Co lze udělat, aby se v highloadové službě zabránilo evakuaci mapy?
Co je to Load Average, jak ho zkontrolovat a na co si dát pozor?
Jsou data kontejneru odstraněna po jeho zastavení?
func (c *Client) Send(ctx context.Context, messages []Message, maxWorkers int) error { sem := make(chan struct{}, maxWorkers) var wg sync.WaitGroup var resultErr error var once sync.Once for _, msg := range messages { wg.Add(1) go func(msg Message) { defer wg.Done() sem <- struct{}{} defer func() { <-sem }() body, err := json.Marshal(msg) if err != nil { once.Do(func() { resultErr = err; cancel() }) return } req, _ := http.NewRequestWithContext( ctx, http.MethodPost, c.url, bytes.NewReader(body), ) req.Header.Set("Content-Type", "application/json") resp, err := c.httpClient.Do(req) if err != nil { once.Do(func() { resultErr = err; cancel()}) return } defer resp.Body.Close() if resp.StatusCode >= 500 { once.Do(func() { resultErr = fmt.Errorf("server error") cancel()}) return } c.sentCount.Add(1) time.Sleep(time.Second) }(msg) } wg.Wait() }
Na jaké úkoly jste používal goroutines a kanály?
Jak jste ovlivnili změnu procesu s analytikou?
Jak je technicky celkově navržena platforma HR?
Jak jste řešili situaci, když účty při převodech spadaly na různé shardy?
Jak převést číslo do dvojkové soustavy?
Jak jste přišli na optimalizaci PostgreSQL a jaké optimalizační metody jste použili?
Implementujte funkci, která přijímá []any a delta int. Je třeba zvýšit o delta pouze první výskyty unikátních čísel (int). Ostatní typy a opakující se čísla ponechte beze změny. Funkce by měla vrátit aktualizovaný seznam a 2 čísla: updated – kolik unikátních čísel bylo změněno, duplicates – kolik číselných prvků se ukázalo být duplicitami func IncrementUniqueIntsInMixed(xs []any, delta int) ([]any, int, int) { // váš kód } // Příklad: xs := []any{1, "a", 5, "b", 1, 0, 5} u, d, s := IncrementUniqueIntsInMixed(xs, 3) // xs == []any{4, "a", 8, "b", 1, 3, 5} // u == 3 // unikátní čísla: 1, 5, 0 // d == 2 // duplicitní čísla: druhé 1, druhé 5