Golang
Как да ускорим алгоритъма за филтриране на графа при голям брой върхове и събития?
Можеш ли да работиш без анализатори?
Какво знаеш за работата с контекста в Go? Какви методи има?
Какви инструменти използваш за оценка на производителността и профилиране по време на разработката на приложения?
Какво е по-важно — интересите на бизнеса или интересите на потребителя?
Какъв е вашият опит с PostgreSQL? Трябваше ли да пишете сложни заявки или да извършвате оптимизации?
Какво ще покаже кодът при изпълнение? package main import "fmt" type Counter struct { val int } func (c Counter) IncVal() { c.val++ } func (c *Counter) IncPtr() { c.val++ } func main() { c := Counter{val: 1} c.IncVal() fmt.Print(c.val, " ") c.IncPtr() fmt.Print(c.val) }
Какво е GOMAXPROCS? Може ли приложение да използва повече ядра, отколкото е указано?
За какво е конструкцията за твърдение за тип?
Разкажи за последния си проект: каква беше бизнес-целта и за какво беше нужен?
Колко партиции трябва да има Kafka топик?
Може ли да се стандартизира обработката на грешки?
/* Трябва да прехвърлим данни от източник към потребител. Източникът предоставя данни на малки пакети (~десет записа), докато потребителят работи по-ефективно с големи пакети (~хиляда записа). Реален пример е прехвърлянето на данни от опашки тип 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 }
Какви гаранции за доставка предлага Kafka? Какво трябва да направи производителят, за да осигури точно веднъж?
Може ли да стартирате Docker контейнер без образ?
Как аргументираш своята гледна точка, ако колега не е съгласен с теб?
Може ли да се съхранява само order_id -> current_status в Redis и да се чете пълната карта на поръчката от реплика? Как да разделим тези два типа четения?
За какво са нужни горутините? Какво е предимството им пред процесите и нишките на ОС?
Предложете индекс за таблицата users с полетата gender и age, ако е необходимо да избирате потребители по пол или възраст
Разкажи за случай, когато си предложил нещо и трябваше да докажеш своята гледна точка.