Sobes.tech

Go'da heap жана stack ортосундагы айырма эмнеде жана ар бири кандай колдонулат?

Senior
Займиго
78

Goдогу goroutine планалоочу кандай иштейт (GMP модел)? GMP моделинде M эмне?

Senior
Гос крипта
78

Окуучу каналды жабса жана жазуучу дагы жазып жатса, эмне болот? Паникадан кантип сактануу керек?

Middle+
Астрал-Софт
78

Компаниянын өнүмдөрү менен мурда тааныш болдубу? Белгилүү бирөө иштейт беле?

Senior
Flant
78

Жаңы номенклатура (жаңы товар) Redisте пайда болушу керекпи?

Senior
МВидеоМВидео
78

Узак убакыт бооруп, акырында ишке ашпаган же жыйнакталган нерсе болгон эмеспи?

Senior
Ozon ФинтехOzon Финтех
78

Өзүңүздү деңгээлдер — Middle, Middle+, Senior чегинде кандай баалайсыз?

Middle+
AxenixAxenix
78

Хеш таблицасы эмне?

Middle
VKVK
78

Goда жабык каналга жазуу мүмкүнбү?

Senior
purrweb
78

Түшүнүксүз тапшырма же абал менен беттешкен учурду жана көрсөтмөлөрдү күтпөстөн аракет кылууга мажбур болгон учурду баяндаңыз.

Senior
Shopfully
78

Таза каналдан окуу учурунда түбөлүк блоктонуудан кантип сакталуу керек? Select деген эмне жана анын үлгүлөрү кандай?

Senior
YadroYadro
78

Программалоодо кагылыштарды болтурбоого жардам берген механизмдер барбы?

Middle+
OZONOZON
78

Go планировщусу кайсы түрдүү көп тапшырмалуулук колдонулат? Эки түрдүү көп тапшырмалуулук барбы?

Senior
AstonAston
78

Go-дөгү сап эмне?

Senior
Small
78

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("Байланыштардын саны слайста 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 бардык балансировкаланган мисалдардын даректери func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImplF, len(addrs)) for _, addr := range addrs { implF := BackendImplF{ Backend: NewBackend(addr), } backends = append(backends, &implF) } }

Middle
Яндекс
78

Бул тапшырмада бизге эмне үчүн WaitGroup керек?

Senior
Cloud.ru
78

Go'догу интерфейс деген эмне? Duck typing кантип иштейт? Интерфейстин ишке ашырылышын компиляция учурунда текшерсе болобу?

Middle
YadroYadro
78

HTTP суроолор менен параллелдүү иштөө үчүн worker pool менен URL-дардын слайсин иштетүүчү код жазгыла.

Senior
WildberriesWildberries
78

Кайтарууларды жана төлөмдөрдү кантип иштеттиңиз?

Senior
РамблерРамблер
78

init-контейнерлер жана sidecar-контейнерлер деген эмне?

Senior
SelectelSelectel
78
/412