Golang
Можеш ли да наведеш пример уског места које си успео да пронађеш помоћу профилирања са pprof?
Zašto ne može da se zatvori kanal koji vraća ctx.Done() pomoću funkcije close()?
Šta veze usluge ako govorimo o otpornosti na greške i sveli smo to na replikacije?
Zašto ste koristili Redis umesto in-memory keša?
Zašto ste ušli na tržište, koja je motivacija za prelazak?
Kako bismo mogli spolja obraditi greške koje se dešavaju u zadacima, ako bismo želeli da to uradimo?
// Postoji mreža bankomata. Potrebno je prikupiti odgovore na prisutnost u mreži. Terminali su raspoređeni širom zemlje. // Napišite funkciju koja prima URL sa ulazne liste ([]string{"[link] "[link] "[link] i tako dalje}) // Odgovor treba prikazati u stdout na zasebnoj liniji "url: %s, code: %s" func check(urls []string) {}
Koji su glavni delovi sistema Transactional Outbox?
Ako prosledite slice funkciji i dodate novi element, da li će promene biti vidljive izvan funkcije? Šta ako kapacitet nije prekoračen?
Да ли си живео у [град], а онда се преселио у [град]?
Можеш ли да причаш о идемпотентности? Как си је имплементирао? Како је уопште функционисала?
Da li postoji arhitekta koji je insistirao upravo 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() }
Zašto ste odlučili da promenite posao?
Da li ste radili u kompaniji kao spoljni saradnik ili kao stalni zaposleni?
Šta nije u redu sa kodom za inkrementaciju brojača u 1000 gorutina? Kako to popraviti pomoću mutex, atomic ili kanala?
Ispričaj mi o planeru Go, kako radi i koji algoritam koristi.
Šta je GOMAXPROCS? Šta će se desiti ako postavite vrlo veliki broj?
Šta se može koristiti za prenos podataka između gorutina?
Koju ekipu želiš da vidiš na novom mestu? Imaš li preferencije u sastavu, ulogama?