Sobes.tech

Golang

Nega 2GIS bilan muloqot qilishga qaror qildingiz? Sizni kompaniya yoki aniq bir vakansiya nima bilan qiziqtirdi?

Middle
2gis2gis
3

Ma'lumotlar bazasida bir vaqtning o'zida ma'lumotlarga kirish bilan ishladingizmi? Qaysi mexanizmlar, masalan, tranzaktsiyalar va bloklar, siz foydalaningiz? Bu muammoni ma'lumotlar bazasini ishtirok etmasdan hal qilishning usullari bormi?

Senior
ClearWay
3

// eng yaxshi() funksiyasi uchun kod parcha // backend mavjud emasligi holatida xatolikni boshqarish bilan

Middle
Яндекс
3

Kubernetesda xizmatni joylashtirish uchun talablarni DevOps jamoasiga qanday yetkazdingiz: xizmatning ishlashini qanday formatda hujjatlab, qanday qilib o'zaro ta'sirni qurdingiz?

Senior
ClearWay
3

Go-da qiymat qabul qiluvchi va ko‘rsatkich qabul qiluvchi metodlar o‘rtasidagi farq nima va qachon har birini tanlash kerak?

Senior
ClearWay
3

// eng yaxshi() funksiyasi uchun kod parcha // backend mavjud emasligi holatida xatolikni boshqarish bilan

Middle
Яндекс
3

// eng yaxshi() funksiyasi uchun kod parcha // backend mavjud emasligi holatida xatolikni boshqarish bilan

Middle
Яндекс
2

Go-da ob'ektga yo'naltirilgan dasturlash mavjudmi? Agar ha bo'lsa, qanday amalga oshiriladi; agar yo'q bo'lsa, nima uchun?

Senior
ClearWay
2

Siz uchun ishda eng muhim narsa nima?

Senior
ООО Вес Медиа
2

Yakuniy kanaldan o'qish nima qaytaradi?

Senior
ООО Вес Медиа
2

Qanday qilib miqyoslashni tashkil qildingiz va qaysi mikroxizmat arxitekturalari bilan ishladingiz?

Senior
ClearWay
2

Qachon goroutine oqishi yuzaga keladi?

Senior
ООО Вес Медиа
2

ID bo'yicha vazifa holatini olish uchun Status metodini qanday amalga oshirish mumkin?

Middle+
Яндекс
2

Alohida goroutine-da panic yuzaga kelsa, dasturga nima bo'ladi?

Senior
ClearWay
2

Bu kodda qanday boshqariladi?

Senior
ClearWay
2

type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr contains ip:port of a specific instance func NewBackend(addr string) *BackendImpl type backentry struct { backend Backend inflight int64 } type Balancer struct { backends []*backentry mu *sync.Mutex } var _ Backend = &Balancer{} // addrs contain the addresses of all balancable instances func NewBalancer(addrs []string) *Balancer { data := make([]*backentry,len(addrs)) for i,addr := range addrs{ data[i] = &backentry{ backend: NewBackend(addr), inflight: 0, } } return &Balancer{backends:data} } func(b *Balancer)Invoke(ctx context.Context, req Request) (Response, error){ b.mu.Lock() entry := b.best() atomic.AddInt64(&entry.inflight,1) b.mu.Unlock() defer atomic.AddInt64(&entry.inflight,-1) return entry.backend.Invoke(ctx,req) } func(b *Balancer) best() *backentry{ var best *backentry for _,entry := b.backends{ if best == nil || atomic.LoadInt64(&entry.inflight) < atomic.LoadInt64(&best.inflight){ best = entry } } return best }

Middle
Яндекс
1

sync.Mutex ilə sync.RWMutex arasındaki fərq nədir?

Senior
ООО Вес Медиа
1

Yangi xizmatni ishlab chiqish va joylashtirish jarayoningizni tavsiflang: talablarni yig'ishdan boshlab ishlab chiqish va test muhitlariga joylashtirishgacha.

Senior
ClearWay
1

Xizmatlarni joylashtirish qanday amalga oshirilgan?

Senior
ООО Вес Медиа
1

Queue metodini amalga oshiring

Middle+
Яндекс
1
/419