Sobes.tech

Что такое multi-stage build в Docker? Зачем нужно?

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

Вас не сокращают, не выгоняют, то есть можете сколько угодно сидеть и работать?

Senior
aic
10

Какие middleware используешь в работе?

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

Расскажи про особенности RPC и gRPC.

Middle+
Napoleon IT
10

Если в системе 24 ядра, сколько процессоров будет в GMP модели?

Senior
Гос крипта
10

Что такое транзакции и свойства ACID?

Senior
AvitoAvito
10

Primary key — это одна колонка или несколько колонок может быть?

Middle
RWB
10

А если все поля у нас используются при чтении?

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

Посчитай нагрузку: у нас 6 игр в секунду и 80 ходов в партии — сколько ходов в секунду?

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

Заполнить элементами слайс без мьютекса, чтобы в нём были все 1000 элементов.

Senior
FREEDOM LIFESTYLE
10

Какие линтеры используешь в Go и где их запускаешь?

Junior
СБК ПАРУС
10

Что не так с инициализацией структур без именованных полей (позиционная инициализация)?

Senior
2gis2gis
10

Расскажите про самый высоконагруженный сервис, который вы проектировали и писали.

Middle+
Servicepipi
10

Когда индекс не будет использоваться при выполнении запроса?

Middle
VKVK
10

Можно ли включать профилировщик на продакшене?

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

Была ли какая-то самая крупная или самая сложная задача, которую хотелось бы выделить из опыта?

Senior
Магнит Тех
10

Как правильно хранить URL хоста внешнего сервиса?

Middle+
Magnit Tech
10

Go — это ООП язык или нет?

Senior
Финтехробот
10

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("Кол-во backends в слайсе 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
Яндекс
10

Был ли опыт менторства, обучения младших коллег?

Middle+
AxenixAxenix
10
/399