Sobes.tech

Tinkoffтогу тажрыйбаң жөнүндө айтып бер — кантип жумушка алындың жана эмне менен алектендиң?

Middle+
КуперКупер
83

func collectRTT(ctx context.Context, urls []string) (map[string]time.Duration, error) { pingMap := make(map[string]time.Duration, len(urls)) var mu sync.Mutex var wg sync.WaitGroup errCh := make(chan error, 1) for _, url := range urls { wg.Add(1) go func(u string) { defer wg.Done() dur, err := rtt(ctx, u) if err != nil { select { case errCh <- fmt.Errorf("RTT қате %s, %w", u, err): default: } return } mu.Lock() pingMap[u] = dur mu.Unlock() }(url) } wg.Wait() close(errCh) if err := <-errCh; err != nil { return nil, err } return pingMap, nil }

Senior
СБК ПАРУС
83

Негізгі программалау тілі қайсы жана башка кайсы тилдерди билесиз, соның ішінде коммерциялык эмес тажрыйба?

Middle+
Озон банк
83

func (p *Pool) Stop() { p.mu.Unlock() // Азыр каналды коопсуз жабууга болот close(p.tasks) // ишчилерге сигнал: жаңы тапшырмалар болбойт, калганын окуңуз p.wg.Wait() // бардык горутиндердин аяктоо үчүн күтүп жатабыз p.cancel() // керек болсо контекстти жокко чыгарабыз fmt.Println("Pool токтотулду.") } // ForceStop күч менен бардык ишчилерди токтотуп, тапшырмаларды күтпөйт. // Ишчилер дароо контекст аркылуу үзгүлтүккө учрайт. func (p *Pool) ForceStop(timeout time.Duration) { fmt.Printf("Пулду күч менен токтотуу (тайм-аут: %v)...\n", timeout) // Жаңы тапшырмаларды кошууга тыюу салат p.mu.Lock() p.isOpen = false p.mu.Unlock() // Каналды жабуу, ишчилер жаңы тапшырма албоосу үчүн close(p.tasks) // Контекстти жокко чыгарабыз – бул бардык иштеп жаткан тапшырмаларды үзгүлтүккө учуратат p.cancel() // Аягына жетүү үчүн чектелген убакыт беребиз done := make(chan struct{}) go func() { p.wg.Wait() close(done) }() select { case <-done: fmt.Println("Пул күч менен токтотулду (бардык ишчилер аяктады)") case <-time.After(timeout): fmt.Println("Пул күч менен токтотулду (тайм-аут, күтүлбөгөн goroutine-дер калат)") } }

Senior
Pasul LTD
83

HAVING эмне үчүн керек жана эмне үчүн WHERE эмес?

Senior
OZONOZON
83

Go-догу маалымат түрлөрү жөнүндө мага айтып бер.

Middle
RWB
83

Кодду кандай өзгөртсө болот, натыйжа 123 ордуна 456 болот?

Middle
Ozon FreshOzon Fresh
83

Кайсы транзакция түрлөрүн билесиң? Алар эмне үчүн керек?

Senior
Small
83

Индекстер менен байланыштуу көйгөйлөр болгонун айттың — конкреттүү айтып бере аласызбы?

Senior
OkkoOkko
83

Goда жабылган каналдан окуу кандай болот?

Senior
Магнит Тех
83

TCP менен UDPнин айырмасы эмнеде? Неге үчүн HTTPS үчүн TCP колдонулат?

Middle+
Ozon ФинтехOzon Финтех
83

Шардирөө түшүнүгү менен тааныш болдубу?

Middle
VKVK
83

Fan-in/fan-out жана pipeline үлгүлөрүн билесизби? Алар эмне?

Senior
техвил
83

Эвакуация процесинде картага элементтерди кошуу же алып салуу мүмкүнбү?

Senior
VK CloudVK Cloud
83

Горутина деген эмне? Ал операциялык тутумдун агымынан эмнеге айырмаланат? Ким башкарат гурутиналарды?

Middle+
YadroYadro
83

Сиздин маяна күтүүлөрүңүз жана сунуштоо үчүн эң жакшы формат кандай?

Middle
Nau
83

Бир машинанын ичинде канча goroutine түзө аласыз? Кантип эсептөө керек?

Senior
СБК ПАРУС
83

Go-догу embedding жана composition ортосундагы айырма эмнеде?

Senior
техвил
83

Бир серверде максимум канча TCP байланышын сактоо мүмкүн?

Senior
ООО Макс
83

Алгоритмдин татаалдуулугу кандай жана бул жерде дарак кайда?

Senior
OkkoOkko
83
/412