Sobes.tech

Golang

GOMAXPROCS nedir? Çok büyük bir sayı belirlenirse ne olur?

199

Go'da kanallar nedir? Hangi türleri var? İç yapısı nasıldır?

194

// Sipariş güncellenirken, sipariş verilerini birkaç hizmete (üçüncü taraf API'leri) göndermemiz gerekiyor // hizmet sayısı artıyor (binlerce+ olabilir) // kodu yazdık, başlangıçta her şey iyi gidiyordu, ancak zamanla hizmetimiz çok fazla bellek tüketmeye başladı func (s *orderService) SendOrder(ctx context.Context, hosts []string, order Order) { for i := 0; i < len(hosts); i++ { go func() { // Uzun süren bir ağ çağrısı olduğunu hayal edin response, err := s.httpClient.Send(ctx, hosts[i], order) if err != nil { s.logger.Error(ctx, "gönderme başarısız", err) return } s.logger.Info(ctx, "başarılı", response) }() } }

Middle+
194

İyimser olmayan kilitleme nedir?

192

Go'da dizeleri birleştirmenin hangi yolları var? + ile strings.Builder arasındaki fark nedir?

191

Go'da context nedir? context.WithTimeout ile context.WithDeadline arasındaki fark nedir?

191

Redis doluysa ve tahliye politikaları devre dışıysa Redis ve istemcilerle ne olur?

189

Bir siparişe ait tüm olayların Kafka'da tek bir bölüme gitmesini nasıl sağlarım?

189

Veri önbellekleme nasıl gerçekleştirildi? Hangi önbellekleme politikası kullanıldı?

187

Dead Letter Queue (DLQ) nedir?

184

Slice nedir? Slicing'in altında ne var? append fonksiyonu nasıl çalışır?

184

// ürün tablosu: // ID | cnt_view // ----------- // 1 | 100 // iki kullanıcı aynı anda id = 1 olan ürünü izlemeye başladı // ve veritabanımızda 2 paralel işlem başlatıldı // sonuç ne olacak? 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

%25 sayısı nasıl hesaplandı? Neden 20 veya 30 değil?

176

Mutex ve RWMutex nedir? Aralarındaki fark nedir?

175

Go'da çöp toplayıcı nasıl çalışır? Ne zaman başlatılır? Manuel olarak başlatılabilir mi?

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'da dizeler nedir? Kaputun altında ne temsil ederler?

169

Go'da hangi profil araçları var?

167

Go'da yapı hizalaması nedir? Bellekte yapı alanlarını nasıl optimize edebilirsiniz?

166

Kafka'nın uygulanmasında herhangi bir nüans veya zorluklar oldu mu? Bu ilk uygulama deneyiminiz miydi?

166
/3