Sobes.tech

Идемпотенттілік дегеніміз не?

197

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

Go тілінде context деген не? context.WithTimeout пен context.WithDeadline қалай ерекшеленеді?

191

Go тілінде жолдарды қосу тәсілдері қандай? + және strings.Builder арасындағы айырмашылық неде?

191

Пессимистік блокировка дегеніміз не?

190

Барлық оқиғалар бір тапсырыс бойынша бір Kafka бөлімшесіне түсетінін қалай қамтамасыз етуге болады?

187

Redis толып қалса және шығару саясаттары өшірілсе, Redis пен клиенттерге не болады?

187

Деректер кэштеу қалай жүзеге асырылды? Қандай кэштеу саясаты қолданылды?

187

Dead Letter Queue (DLQ) деген не?

184

Слайс дегеніміз не? Оның астында не жатыр? Append функциясы қалай жұмыс істейді?

184

// кесте тауарлары: // ID | қарау саны // ----------- // 1 | 100 // 2 пайдаланушы бір уақытта тауарды қарауды бастады, оның id = 1 // және біздің дерекқорда екі параллель транзакция іске қосылды // нәтижесі қандай болатынын түсіндіру керек? postgress 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

Қалайша 25% саны есептелді? Неліктен 20 немесе 30 емес?

176

Mutex пен RWMutex деген не? Олардың айырмашылықтары қандай?

175

Go тілінде қоқыс жинағыш қалай жұмыс істейді? Ол қашан іске қосылады? Оны қолмен іске қосуға бола ма?

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

Kafka-ны енгізуде қандай да бір нюанстар мен қиындықтар болды ма? Бұл сіздің алғашқы тәжірибеңіз бе?

166

Go тілінде құрылымдардың туралануы дегеніміз не? Жады үшін құрылым өрістерін қалай оңтайландыруға болады?

166
/3