Sobes.tech

GOMAXPROCS რა არის? რა მოხდება, თუ ძალიან დიდ რაოდენობას დავაყენებთ?

195

რა არის არხები Go-ში? რა ტიპები არსებობს? როგორ არის მოწყობილი შიგნიდან?

194

// როდესაც თქვენ განაახლეთ შეკვეთა, ჩვენ უნდა გავაგზავნოთ შეკვეთის მონაცემები რამდენიმე სერვისზე (მესამე მხარის API-ებზე) // სერვისების რაოდენობა იზრდება (შესაძლოა ათას+) // ჩვენ დავწერეთ კოდი, თავდაპირველად ყველაფერი კარგად მიდიოდა, მაგრამ დროთა განმავლობაში ჩვენი სერვისი დაიწყო ბევრი მეხსიერების მოხმარება func (s *orderService) SendOrder(ctx context.Context, hosts []string, order Order) { for i := 0; i < len(hosts); i++ { go func() { // წარმოიდგინეთ, რომ ეს არის გრძელი ქსელური ზარი response, err := s.httpClient.Send(ctx, hosts[i], order) if err != nil { s.logger.Error(ctx, "გაგზავნის შეცდომა", err) return } s.logger.Info(ctx, "წარმატება", response) }() } }

Middle+
194

რა არის context in Go? რა განსხვავებაა context.WithTimeout და context.WithDeadline შორის?

191

რა გზები არსებობს სტრიქონების კონკატენაციისთვის Go-ში? რა განსხვავებაა + და strings.Builder-ს შორის?

191

რა არის პესიმისტური ბლოკირება?

190

როგორ განხორციელდა მონაცემების ქეშირება? რა პოლიტიკა გამოიყენებოდა ქეშირებისთვის?

187

როგორ დავრწმუნდეთ, რომ ყველა შეკვეთის მოვლენები ერთ Kafka განყოფილებაში მოხვდება?

187

თუ Redis სავსეა და პოლიტიკები გამოდევნის გამორთულია, რა მოხდება Redis და მომხმარებლებთან?

185

რა არის სლაისი? რა არის სლაისის ქვეშ? როგორ მუშაობს append ფუნქცია?

184

რა არის Dead Letter Queue (DLQ)?

184

// საქონლის სია: // ID | cnt_view // ----------- // 1 | 100 // ორი მომხმარებელი ერთდროულად დაიწყო პროდუქტის ნახვა, რომლის ID = 1 // და ჩვენს ბაზაში დაიწყო 2 პარალელური ტრანზაქცია // რა იქნება შედეგი? postgresql func IncrementView(ctx context.Context, db *sql.DB, id int64) error { tx, err := db.BeginTx(ctx, nil) if err != nil { return err } defer tx.Rollback() var cnt int err = tx.QueryRowContext(ctx, "SELECT cnt_view FROM goods WHERE id = $1", id, ).Scan(&cnt) if err != nil { return err } cnt++ _, err = tx.ExecContext(ctx, "UPDATE goods SET cnt_view = $1 WHERE id = $2", cnt, id, ) if err != nil { return err } return tx.Commit() }

Middle+
178

Mutex და RWMutex რა არის? რა განსხვავებაა?

175

როგორ გამოითვალა 25%? რატომ არა 20 ან 30?

174

როგორ მუშაობს გო-ში ნაგვის შეგროვება? როდის იწყება? შეიძლება ხელით დაიწყოს?

173

func (r *OrderRepository) GetActiveOrderIDs(ctx context.Context, offset, limit int) ([]uint32, error) { var ( res []uint32 args []interface{} ) query := `SELECT id FROM "order" WHERE is_terminated = false LIMIT $1 OFFSET $2;` args = append(args, limit, offset) rows, err := r.slave.Query(ctx, query, args...) if err != nil { return nil, err } for rows.Next() { var orderID uint32 if err = rows.Scan(&orderID); err != nil { return nil, err } res = append(res, orderID) } return res, nil }

Middle+
172

რა არის სტრიქონები Go-ში? რა წარმოადგენს ისინი ბორბლის ქვეშ?

169

რა პროფილირების ინსტრუმენტები არსებობს Go-ში?

167

კაფკას დანერგვაში იყო ნიუანსები და სირთულეები? ეს თქვენი პირველი დანერგვა იყო?

166

რა არის სტრუქტურების გამართვა Go-ში? როგორ ოპტიმიზიროთ სტრუქტურის ველები მეხსიერებაში?

166
/3