Идempotентӣ чист?
Golang
Блокиратсияи песимистӣ чист?
// Ҳангоми навсозии фармоиш, мо бояд маълумоти фармоишро ба чанд хидмат (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) }() } }
Чаналҳо дар Go чистанд? Кадомҳоянд? Дар дохил чӣ гуна сохта шудаанд?
Контекст дар Go чист? Фарқи байни context.WithTimeout ва context.WithDeadline чист?
Чӣ гуна роҳҳои пайваст кардани сатрҳо дар Go ҳаст? Фарқи байни + ва strings.Builder дар чист?
Чӣ тавр ҳамаи ҳодисаҳои як фармоиш ба як партисияи Kafka ворид шаванд?
Чӣ гуна кэш кардани маълумотҳо амалӣ шуд? Кадом сиёсати кэш истифода шуд?
Агар Redis пур бошад ва сиёсати хориҷ кардан ғайрифаъол бошад, бо Redis ва мизоҷон чӣ мешавад?
Слайс чист? Даруни слайс чӣ аст? Чӣ тавр функсияи append кор мекунад?
Dead Letter Queue (DLQ) чист?
// таблица товаров: // 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() }
Чӣ тавр ҷамъоварии партовҳо дар Go кор мекунад? Вақте ки оғоз мешавад? Оё мумкин аст онро дастӣ оғоз кард?
Мутекс ва RWMutex нима? Улар қандай фарқ қилади?
Чӣ тавр ҳисоб карда шуд 25%? Чаро на 20 ё 30?
Стрингҳо дар Go чистанд? Дар дохили мотора чӣ маъно доранд?
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 }
Оё дар татбиқи Kafka нусхаҳо ва мушкилот буданд? Ин аввалин таҷрибаи шумо дар татбиқ буд?
Кадом асбобҳои профайл дар Go вуҷуд доранд?
Чӣ тавр ҳамоҳангсозии сохторҳо дар Go аст? Чӣ гуна метавон майдонҳои сохторро дар хотира оптимизатсия кард?