Sobes.tech

Golang

Dağıtık sistemleri destekleme veya geliştirme deneyiminiz var mı?

185

Kamu bulutlarını kullandın mı? Evet ise, hangi sağlayıcılar ve hizmetler?

185

Mimarlık üzerinde nasıl çalışıyorsunuz — ekipte bir mimar, platform, komite var mı?

184

Yüksek RPS (örneğin, 30.000 RPS ve 10 backend) durumunda tüm backend'lerin lineer taraması ne kadar hızlı çalışacaktır?

183

type Balancer struct { // TODO backends []*BackendImpl index int mu sync.Mutex N int K time.Duration } var _ Backend = &Balancer{} func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { if len(b.backends) == 0 { return nil, fmt.Errorf("Backends sayısında 0") } b.mu.Lock() index := b.index for b.backends[index].banned { b.index = (b.index + 1) % len(b.backends) index = b.index } b.index = (b.index + 1) % len(b.backends) b.mu.Unlock() backend := b.backends[index] resp, err := backend.Backend.Invoke(ctx, req) if err != nil && backend.countErrors < b.N { backend.mu.Lock() backend.countErrors += 1 if backend.countErrors == b.N { backend.banned = true go func() { time.Sleep(b.K) backend.mu.Lock() defer backend.mu.Unlock() backend.banned = false backend.countErrors = 0 }() } backend.mu.Unlock() } return resp, err } // addrs tüm yük dengeleyicilerin adreslerini içerir func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImplF, len(addrs)) for _, addr := range addrs { implF := BackendImplF{ Backend: NewBackend(addr), } backends = append(backends, &implF) } }

181

Hizmet kaç ana bilgisayarda çalışıyordu ve kaç örnek başlatıldı?

180

En yoğun trafikli hizmette saniyede en yüksek kaç istek vardı?

180

Veritabanlarıyla çalışırken karşılaştığınız en büyük veri hacmi nedir?

180

Aramalar ne kadar aktif? Belki de zaten bazı teklifler var mı?

180

2019'dan 2021'e kadar ilk işin hakkında daha fazla bilgi ver.

180

Pencerede tüm sembollerin olduğunu hızlıca nasıl kontrol edersiniz (iki haritayı karşılaştırma)?

180

/** :-))) :-(( "ab :-)" = "ab " "ab :-)))" = "ab " "ab :-)))(" = "ab (" "ab ):-)" = "ab )" ":-)" = "" **/ func deleteP(str string) string { n := len(str) res := make([]byte, 0, n) i := 0 for i < n { if str[i] == ':' && str[i+1] == '-' && (str[i+2] == ')' || str[i+2] == '(') { ch := str[i+2] i += 2 for i < n && str[i] == ch { i++ } } else { res = append(res, str[i]) } } return string(res) }

178

Çalıştığınız en büyük projede kaç kişi yer aldı? Onun altında mı, onlarca mı, yüzlerce mi?

178

En az yüklü backend'i seçmek yerine daha basit ve daha hızlı yük dengeleme yöntemleri var mı?

177

Birden fazla örneğe sahip dağıtılmış bir sistemde paralel istek sınırlandırma sorununu, kullanıcının hata almak yerine beklemesi gerekiyorsa nasıl çözebilirsiniz?

177

Düzeltilmiş kodda sözdizimi hatalarını bulun

177

Message Service mesajları neden Kafka yerine doğrudan gRPC üzerinden gidiyor?

176

func countSubs(s string) int { result := 0 left := 0 hm := make(map[rune]int) for right := 0; right < len(s); right++ { hm[s[right]]++ for hm[s[right]] > 1 { hm[s[left]]-- if hm[s[left]] == 0 { delete(hm, s[left]) } left++ } result += (right - left + 1) } return result }

176

Proto dosyasına dayalı olarak BulkCreateUsers yöntemini uygulayın: proje yapısını, iş mantığını, deposunu ve SQL sorgularını SOLID ilkelerine uygun şekilde oluşturun

175

""" Sinema koltukları tek bir sırada dizilmiştir. Yeni gelen bir izleyici, sıradaki diğer izleyicilerden mümkün olan en uzak mesafeye bir koltuk seçer. Yani, seçtiği koltuktan en yakın izleyiciye olan mesafe maksimum olmalıdır. Sırada her zaman boş koltuklar olduğu ve en az bir izleyicinin oturduğu garanti edilir. Verilen bir koltuk sırası (sıfır ve birlerden oluşan bir dizi) için, seçilen koltuk ile en yakın izleyici arasındaki mesafeyi (koltuklar arasındaki boşluk sayısı) döndüren bir fonksiyon yazın. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 [0, 0, 0, 1] -> 3 [1, 0, 0, 0] -> 3 place = ((right - left) / 2) """ func maxPlaces(arr []int) int { }

174
/11