Sobes.tech

Golang

Mesélj az eseményalapú megközelítésről a példádban

Senior
Холодильник.руХолодильник.ру
69

Miért keres új munkát?

Senior
.wrk
69

Személy szerint teszteltem, hogy a Postgres átrendezi az oszlopokat, és az optimalizáló nem számít, milyen sorrendben írod a lekérdezést — ő maga fogja átszerkeszteni, ahogy kell. Mit szólsz?

Senior
OkkoOkko
69

Mesélj a munkatapasztalatodról és érdekes feladatokról

Middle+
Magnit Tech
69

Hol él most, és milyen munkafolyamatot fontolgat?

Middle
YadroYadro
69

Dolgozott már PostgreSQL tranzakciókkal és milyen izolációs szinteken?

Senior
2gis2gis
69

Milyen gyakorlatok léteznek a Docker-kép méretének csökkentésére?

Senior
Flant
69

func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(totalPayouts) // tranzakció hozzáadása if err != nil { return err } partner, err := r.find(partnerID) if err != nil { return err } advertiser.Balance -= amount partner.Hold -= amount partner.Balance += amount if err := r.save(advertiser); err != nil { return err } if err := r.save(partner); err != nil { return err } r.totalPayouts++ return nil } func (r *PayoutRepository) find(id string) (Partner, error) { p := Partner{} err := r.db.QueryRow("SELECT * FROM partners WHERE id = " + id).Scan(&p) // $1 hozzáadása if err != nil { if err == sql.ErrNoRows { return p, errors.New("partner nem található") } return p, err } return p, nil }

Senior
Pasul LTD
69

Hogyan kapcsolódik a derivált a területhez?

Middle
Graveling
69

Melyik parancs mutatja a lemezterületet?

Middle+
VK CloudVK Cloud
69

Miért jobb eltávolítani a mutatót a szeletből a tárolóban? Érvek mellette és ellene.

Senior
2gis2gis
69

Mi az az OSI modell? Mi az az alkalmazási réteg?

Middle+
ООО Макс
69

Most mit szeretnél — mik az elvárásaid az új munkával kapcsolatban?

Senior
Ozon ФинтехOzon Финтех
69

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() }

Senior
Wildberries & Russ Bank
69

Mit jelent az RPC-stílusú névhasználat? A mi esetünkben a gRPC és a REST — miben különböznek?

Senior
МВидео/эльдорадо
69

Előfordult már, hogy időt kellett követned, feladatokat nyilvántartani valamilyen rendszerben?

Middle+
Lexica
69

Hogyan határozható meg, hogy egy kb. 1000 felhasználós terméknek mikroservice vagy monolit architektúrára van-e szüksége?

Middle+
VKVK
69

Van egy parkoló a bevásárlóközpontban: a gépkocsik be- és kijárnak, és a parkolási szakasz végén fizetni kell. Hogyan látod ezt? Tervezzen egy rendszert.

Middle+
МВидео/эльдорадо
69

Hogyan lehet elérni a 456 kimenetet anélkül, hogy pointer fogadót használnánk?

Middle
Ozon FreshOzon Fresh
69

1.21 func main() { var nums []*int for i := 0; i < 10; i++ { nums = append(nums, &i) } for _, v := range nums { go func() { fmt.Println(v) }() } }

Senior
CRTEX
69
/412