Golang
Opowiedz o wstrzyknięciach SQL
Czy możesz wyjaśnić, czym jest funkcja hash FNV, której użyłaś?
Czym są poziomy izolacji transakcji? Które używałeś?
Czy można zaimplementować RPC przez REST i odwrotnie? Na czym polega zasadnicza różnica?
Jak rozwiązać problem ograniczenia równoległych zapytań w rozproszonym systemie z wieloma instancjami, jeśli użytkownik musi czekać, a nie otrzymywać błąd?
Istnieje funkcja, która przechodzi przez kontener i liczy elementy mniejsze niż 42. Jeśli wywołasz ją na tablicy i na liście powiązanej z tymi samymi danymi, co pokaże stoper?
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("błąd 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 }
Czy pracowałeś z PostgreSQL, MongoDB, ClickHouse i innymi bazami danych?
Obliczono hash, znaleziono bucket, wstawiono nową wartość. Co się dzieje, gdy przychodzi nowa wartość z tym samym hashem (kolizja)?
Jakie są oczekiwania finansowe (netto)?
Czym jest HTTPS? Czym różni się od HTTP? Jak chroni przed atakiem 'człowiek w środku'?
Do jakich zadań używałeś goroutines i kanałów?
Co jest Ci bliższe — rozwój produktu czy infrastruktury?
Jakie funkcje agregujące znasz?
Zwiększ liczbę iteracji do 12
Jak będzie synchronizowany Redis i Postgres? W końcu mogą się rozchodzić.
Opowiedz o wzorcu Transactional Outbox — jak on działa i do czego służy?
Opowiedz o swoim doświadczeniu komercyjnym z PostgreSQL i Redis. Od którego roku pracujesz, jakie zadania rozwiązywałeś? Podaj ciekawe przypadki.
Czy musiałeś wyraźnie ustawiać poziom izolacji w kodzie?
Jakie są odniesienia, których użyłeś?