Sobes.tech

Чӣ кэш карда шуд? Баъзе директорияҳо?

Senior
МВидео/эльдорадо
166

/* Морате пренети податке из извора одређеном потрошачу. При томе извор испоручује податке у малим пакетићима (~ десетине записа), а потрошач ради ефикасније са већим батчевима. Реалан пример - испорука података из редова типа Kafka у базу података Clickhouse. Извор: - Условно бесконачан. - Извор никада не враћа више од MaxItems записа у једном позиву Next. - У оквиру једне "сесије" (једног позива функције Pipe), извор сваки пут враћа нове податке за сваки позив Next. - Међутим, након поновног покретања, извор почиње од претходне "потврђене" позиције, одређене cookie-јем. Стога, *свака* вредност cookie-а коју је вратио позив Next, након чувања података у примаоцу, мора бити фиксирана позивом Commit, и то строго у истом редоследу у којем су враћени од стране Next. Прималац: - Не може обрадити више од MaxItems у једном кораку. Основни ниво: Потребно је реализовати функцију func Pipe(p Producer, c Consumer) error која чита податке из извора, групише их у буфер величине не већој од MaxItems и чува у примаоца, након чега фиксира напредак у извору. */ const MaxItems = 9999 type Producer interface { // Next враћа: // - пакет ставки за обраду // - cookie за потврду када је обрада завршена // - грешку Next() (items []any, cookie int, err error) // Commit се користи за означавање пакета података као обрађеног Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { var buf []any var cookies []int for { items, cookie, err := p.Next() if err != nil { return err } buf = append(buf, items...) cookies = append(cookies, cookie) if len(buf) >= MaxItems { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } buf = buf[:0] cookies = nil } } if len(buf) > 0 { if err := c.Process(buf); err != nil { return err } for _, c := range cookies { if err := p.Commit(c); err != nil { return err } } } return nil }

Middle
Яндекс
166

Оё шумо метавонед ширкатҳо ё таъминкунандагонро, ки бо онҳо кор кардаед, номбар кунед?

Junior — Middle
166

Дар бораи ҷойи охирини корӣ: чӣ кор мекардед, кадом стекро истифода мебурдед, вазифаҳои душвор буд?

Middle
OZONOZON
166

Слайс дар Go чист?

Middle
Бюро 1440Бюро 1440
166

Оё метавонед намудҳои асосии зангҳоро, ки дар gRPC истифода мешаванд, номбар кунед?

Junior — Middle
СБЕР дейвайсыСБЕР дейвайсы
166

Оё гирифтани маълумот аз канал бо режими пӯшида иҷозат дорад?

Junior — Middle
ГазпромГазпром
X5 groupX5 group
AvitoAvito
+1
166

Оё имкон дорад, ки ба партисияи муайяни Kafka мустақиман нависед, бидуни калид барои хешинг?

Junior — Middle
Самокат Тех
166

Оё шумо метавонед механизмии илова кардани унсур ба охири сохтори додаҳоро, масалан, рӯйхат ё массив, шарҳ диҳед?

Junior — Middle
Lamoda Tech
Startribe
Самокат Тех
+2
166

Дар кадом ҳолатҳо ва чӣ гуна маълумотҳо дар стеки иҷро мешаванд?

Junior — Middle
166

Кадом усулҳои кешгириро дар лоиҳаҳои худ истифода мебаред ва чаро?

Junior — Middle
166

Вижати материализатсия чӣ гуна аз вижати оддӣ фарқ мекунад?

Middle
RWB
165

Компонентҳои структураи рӯйхати пайвастшуда кадомҳоянд?

Junior — Middle
165

Вақти иҷрои амалиёти илова кардани унсур бо калид дар структураи додаҳои Map чӣ гуна муайян карда мешавад?

Junior — Middle
ЯндексЯндекс
165

Чаро одатан андозаи ибтидоии стеки сӯрохҳо 2 МБ муқаррар карда мешавад?

Junior — Middle
165

Оё шумо то ҳол сохтори ErrGroup-ро дар лоиҳаҳои худ барои идоракунии вазифаҳои параллелӣ истифода бурдаед?

Junior — Middle
165

Кадом бастаи ғайриодатӣ ё ғайриодатии бастаҳоро дар амалияатон истифода бурдед?

Junior — Middle
165

Чаро афзоиши ломика суст мегзарад ва чаро наметавонем ҳамеша ду баробар кардан?

Middle
RWB
165

Дар кадом ҷойи фармони дар раванди кории GitLab CI/CD иҷро мешаванд?

Junior — Middle
165

Кадом, ки принсипҳои SOLID дар тарҳрезии нармафзор риоя нашаванд, чӣ оқибатҳо метавонанд ба вуҷуд оянд?

Junior — Middle
Zonatelecom
165
/413