Sobes.tech

Golang

Povedz mi o použití udalostí (prístup riadený udalosťami) na tvojom príklade

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

Prečo hľadáte novú prácu?

Senior
.wrk
69

Osobne som testoval, že Postgres preusporadúva stĺpce a optimalizátor mu nezáleží na poradí, v akom napíšete dotaz — sám ho preusporiada tak, ako je potrebné. Čo si o tom myslíš?

Senior
OkkoOkko
69

Povedz mi o svojej pracovnej skúsenosti a zaujímavých úlohách

Middle+
Magnit Tech
69

Kde momentálne bývate a aký formát práce zvažujete?

Middle
YadroYadro
69

Pracoval ste s transakciami v PostgreSQL a s ktorými úrovňami izolácie?

Senior
2gis2gis
69

Aké praktiky existujú na zníženie veľkosti Docker obrazu?

Senior
Flant
69

func (r *PayoutRepository) Payout(advertiserID, partnerID string, amount float32) error { advertiser, err := r.find(totalPayouts) // pridať transakciu ak err != nil { vrátenie err } partner, err := r.find(partnerID) ak err != nil { vrátenie err } advertiser.Balance -= amount partner.Hold -= amount partner.Balance += amount ak err := r.save(advertiser); err != nil { vrátenie err } ak err := r.save(partner); err != nil { vrátenie err } r.totalPayouts++ vrátenie nil } funkcia (r *PayoutRepository) find(id string) (Partner, error) { p := Partner{} err := r.db.QueryRow("SELECT * FROM partners WHERE id = " + id).Scan(&p) // pridať $1 ak err != nil { ak err == sql.ErrNoRows { vrátenie p, errors.New("partner nenájdený") } vrátenie p, err } vrátenie p, nil }

Senior
Pasul LTD
69

Ako je odvodená súvisí s plochou?

Middle
Graveling
69

Aký príkaz zobrazuje diskový priestor?

Middle+
VK CloudVK Cloud
69

Prečo je lepšie odstrániť ukazovateľ zo slice v repozitári? Argumenty za a proti.

Senior
2gis2gis
69

Čo je to model OSI? Čo je to aplikačná vrstva?

Middle+
ООО Макс
69

Čo chceš teraz — aké máš očakávania od novej práce?

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

Čo znamená pomenovanie v štýle RPC? V našom prípade gRPC a REST — v čom sa líšia?

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

Museli ste niekedy sledovať čas, viesť evidenciu úloh v nejakom systéme?

Middle+
Lexica
69

Ako určiť, či produkt s približne 1000 používateľmi potrebuje architektúru mikroservisov alebo monolitickú?

Middle+
VKVK
69

V nákupnom centre je parkovisko: autá vchádzajú a vychádzajú, a na konci parkovacej session je potrebné zaplatiť. Ako to vidíš? Navrhni systém.

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

Ako získať výstup 456, ak nepoužívate ukazovateľ (pointer receiver)?

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