Sobes.tech

С какви инструменти сте работили?

Senior
Effective IT
69

Защо екипите не могат да деплойват независимо при монолит? И защо трите CI/CD пайплайна са минус за микросървисите, ако всъщност са техният плюс?

Senior
Лига Цифровой ЭкономикиЛига Цифровой Экономики
69

Как да разберем кога е необходим партициониране или шардиране?

Middle+
МВидео/эльдорадо
69

Какво се случва с Xmin и Xmax при UPDATE?

Middle+
МВидеоМВидео
69

Кой трябва да затвори канала?

Middle+
WaterWal
69

/* Трябва да прехвърлим данни от източник към потребител. Източникът предоставя данни на малки пакети (~десет записа), докато потребителят работи по-ефективно с големи пакети (~хиляда записа). Реален пример е прехвърлянето на данни от опашки тип 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 { // TODO }

Middle+
Яндекс
69

Дали ви се е случвало да ви поставят задача, да започнете да я изпълнявате, но по време да разберете, че изискванията са противоречиви или технически невъзможни за изпълнение в срок? Какво направихте в такъв случай?

Senior
АЭРО
69

```go import ( "fmt" "runtime" "time" ) func main() { runtime.GOMAXPROCS(2) var c chan int for i := 0; i < 5; i++ { go sleeping(i, c) } for i := 0; i < 5; i++ { gopherID := <-c fmt.Println("routine ", gopherID, " приключи съня") } } func sleeping(id int, c chan int) { time.Sleep(3 * time.Second) fmt.Println("... ", id, " време за спиране ...") c <- id } ```

Middle+
МВидео/эльдорадо
69

Какви са типовете/групите на дизайн патърсите?

Senior
I-teco
69

Кой отговаряше за договорите между услугите? Кой беше собственикът на договора и как го модифицирахте?

Middle+
РамблерРамблер
69

Какъв формат на съобщенията да използваме в Kafka за услуга с висок товар: JSON или бинарен?

Senior
А7
69

Разкажи за използването на Redis в проектите ти.

Middle
АО Медиа Эффект
69

Кой формат на регистрация предпочитате: TK, IP? От каква сума разглеждате предложението?

Middle+
Umbrella IT
69

Имало ли е грешки / проблеми на работното място?

Senior
Холодильник.руХолодильник.ру
69

Как върви потокът от задачи — от бизнеса до разработката?

Senior
WildberriesWildberries
69

Къде живееш сега и какъв формат на работа обмисляш?

Middle+
Лига Цифровой ЭкономикиЛига Цифровой Экономики
69

Потвърждаване на търговски опит: опит по трудов договор или по ГПХ?

Senior
Датаджайл
69

Когато валидирането приключи — записваме това в базата или го изпращаме нататък към Kafka?

Senior
OkkoOkko
69

С какво събираше данните за изчисляване на заплатите? Какъв инструмент използваше?

Senior
BetBoom
69

Живеехте ли в една инфраструктура или различните системи бяха в различни кръгове?

Middle+
РамблерРамблер
69
/412