Golang
Czy możesz podać przykład wąskiego gardła, które udało się znaleźć za pomocą profilowania z pprof?
Dlaczego nie można zamknąć kanału zwróconego przez ctx.Done() za pomocą funkcji close()?
Czym są usługi, jeśli mówimy o odporności na awarie i sprowadziliśmy to do replik?
Dlaczego użyłeś Redis zamiast pamięci podręcznej w pamięci?
Dlaczego wszedłeś na rynek, jaka jest motywacja do przejścia?
Jak moglibyśmy obsługiwać zewnętrznie błędy, które występują w zadaniach, jeśli chcielibyśmy to zrobić?
// Istnieje sieć terminali bankowych. Należy zbierać odczyty odpowiedzi z sieci. Terminale są rozmieszczone w całym kraju. // Napisz funkcję, która otrzymuje URL z listy wejściowej ([]string{"[link] "[link] "[link] i tak dalej}) // odpowiedź wyświetl na stdout w osobnej linii "url: %s, code: %s" func check(urls []string) {}
Jakie są główne części systemu Transactional Outbox?
Jeśli przekażesz slice do funkcji i dodasz do niego nowy element, czy zmiany będą widoczne poza funkcją? A co, jeśli pojemność nie jest przekroczona?
Czy mieszkałeś w [miasto], a potem przeprowadziłeś się do [miasto]?
Czy możesz opowiedzieć o idempotencji? Jak ją wdrożyłeś? Jak ona w ogóle działała?
Czy jest architekt, który nalegał na Elasticsearch?
var defaultTxOptions = &sql.TxOptions{} const defaultCurrency = "RUB" func CreateUserWithDefaultCurrency(ctx context.Context, db *sql.DB, email, passwordHash string) error { tx, err := db.BeginTx(ctx, defaultTxOptions) if err != nil { return err } defer func() { if err != nil{ tx.Rollback() } }() _, err = tx.Exec("INSERT INTO users (email, password) VALUES (?, ?)", email, passwordHash) if err != nil { return err } rows, err := tx.Query("SELECT id FROM users WHERE email = ?", email) if err != nil { return err } defer rows.Close() id := 0 for rows.Next() { err = rows.Scan(&id) if err != nil { return err } } _, err = tx.Exec("INSERT INTO balances (user_id, currency, current_balance) VALUES (?, ?, 0)", id, defaultCurrency) if err != nil { return err } return tx.Commit() }
Dlaczego zdecydowałeś się zmienić pracę?
Czy pracowałeś w firmie jako zewnętrzny współpracownik czy jako pracownik etatowy?
Co jest nie tak z kodem inkrementacji licznika w 1000 goroutines? Jak to naprawić za pomocą mutex, atomic lub kanałów?
Opowiedz o planowniku Go, jak działa i jaki algorytm stosuje.
Czym jest GOMAXPROCS? Co się stanie, jeśli ustawimy bardzo dużą liczbę?
Czego można użyć do przesyłania danych między gorutynami?
Jaką drużynę chciałabyś zobaczyć w nowym miejscu? Czy masz preferencje co do składu, ról?