func collectRTT(ctx context.Context, urls []string) (map[string]time.Duration, error) { pingMap := make(map[string]time.Duration, len(urls)) var mu sync.Mutex var wg sync.WaitGroup errCh := make(chan error, 1) for _, url := range urls { wg.Add(1) go func(u string) { defer wg.Done() dur, err := rtt(ctx, u) if err != nil { select { case errCh <- fmt.Errorf("selhání RTT %s, %w", u, err): default: } return } mu.Lock() pingMap[u] = dur mu.Unlock() }(url) } wg.Wait() close(errCh) if err := <-errCh; err != nil { return nil, err } return pingMap, nil }
Golang
Jak byste krok za krokem vyvinuli nový mikroservis s entitou Book?
Co se stane, když zadáš [web] do prohlížeče? Popiš co nejpodrobněji, jaké protokoly se používají
Kolik gorutin lze vytvořit na jednom stroji? Jak se počítá?
Jaký je rozdíl mezi ReplicaSet a Deployment v Kubernetes?
Pověz mi o organizaci práce s pamětí v Go
Povězte případ použití rozhraní v produkční logice z pohledu architektury
Kdybys byl vývojářem jazyka Go, jakou datovou strukturu bys použil k implementaci bufferovaného kanálu?
Co víš o práci s kontextem v Go? Jaké má metody?
Na co jsou v kódu lintry? Které jsi použil?
Pověz mi o prázdné struktuře struct{}. Případy použití, kolik paměti zabírá?
Co je to Value Object a kde se používá? Praktický příklad.
Jaké příkazy Linux znáš? Vyprávěj případ práce s konzolí.