Sobes.tech

негизги пакет func main() { c := make(chan int, 1) 3 жолу цикл { тандоо { алдын ала: println(1) учур <-c: println(2) учур c <- 1: println(3) } } }

267

```go func fail() { panic("Жалгыз!") } func main() { fmt.Println("Баштоо!") var wg sync.WaitGroup wg.Add(1) go func() { defer func() { if e := recover(); e != nil { fmt.Println(e) } }() fail() wg.Done() }() wg.Wait() fmt.Println("Аягына чыкты!") } ```

225

Элестиксчий тандооңуздун себеби эмне? Башка варианттар болдубу? Эч нерсе тандадыңызбы же ELK эле бар болчубы?

211

Жобалар же иш шарттары боюнча суроолоруңуз барбы?

206

Сен Elasticsearch көмегімен транзакцияларды тез іздеу үшін құрал жасадың деп айтасың. Бұл не, онда қанша транзакция бар және оның пайдасы қандай?

184

Акырында, кайсы чечимдерди тандадыңыздар? ClickHouse, ELK жана башка эмне?

184

func fetch(ctx context.Context, u User) (string, error) { // нещо правим в мрежата time.Sleep(time.Millisecond * 10) // имитация на забавяне return u.Name, nil //return "", errors.New("някаква грешка") } func Do(ctx context.Context, users []User) (map[string]int64, error) { var mu sync.Mutex var wg sync.WaitGroup ch := make(chan error, len(users)) names := make(map[string]int64, 0) ctxWithCancel, cancel := context.WithCancel(ctx) wg.Add(len(users)) for _, u := range users { go func() { defer wg.Done() select { case name, err := fetch(ctx, u): if err != nil { ch <- err return } mu.Lock() names[name] = names[name] + 1 mu.Unlock() case <-ctxWithCancel.Err: } }() }

182

Elasticsearch ишке киргизилгандан кийин колдонуучулардан же техникалык колдоо кызматынан кандайдыр бир продукттук пикирлер болду беле?

171

Жогорку жүктөмдүү системаны эмне кылат? Өз тажрыйбаңызга негизделген.

168

негизги пакет импорт ( "fmt" ) функция main() { c := make(chan string, 1) go fmt.Println(<-c) c <- "Салам Дунё!" fmt.Println("Чиқиш!") } фатал хата: барча goroutine-лар уйда - deadlock! goroutine 1 [канал қабул қилиш]: main.main() /tmp/sandbox[phone]/prog.go:10 +0x3a Дастур чиқди: ҳолат 2.

158

негізгі пакет func main() { c := make(chan int) 3 цикл үчүн { select { әдепкі: println(1) учур <-c: println(2) учур c <- 1: println(3) } } }

157

негизги пакет импорт ( "fmt" ) функция негизги() { c := make(chan string) го fmt.Println(<-c) c <- "Hello World!" fmt.Println("Чыгуу!") }

156

Кызматтар менен эмне байланышы бар, эгер биз ката туруштуктуулук жана аны репликага кыскарттык деп айтсак?

149

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

147

негизги пакет импорт ( "fmt" ) функция main() { c := make(chan string) го go fmt.Println(<-c) c <- "Салам дүйнө!" fmt.Println("Чыгуу!") } фатал катасы: бардык горутиндар уйкуда - deadlock! goroutine 1 [канал кабыл алуу]: main.main() /tmp/sandbox[phone]/prog.go:10 +0x3a Программа чыгып жатат: статус 2.

147

func Do(ctx context.Context, users []User) (map[string]int64, error) { var mu sync.Mutex var wg sync.WaitGroup ch := make(chan error, len(users)) names := make(map[string]int64, 0) ctxWithCancel, cancel := context.WithCancel(ctx) wg.Add(len(users)) for _, u := range users { go func() { defer wg.Done() select { case name, err := fetch(ctx, u): if err != nil { ch <- err return } mu.Lock() names[name] = names[name] + 1 mu.Unlock() case <-ctxWithCancel.Err: } }() } return names, nil }

137
/2