Golang
Какво е inline оптимизацията на компилатора? В кой момент се случва и как влияе върху разположението на променливите?
Разкажи ми за модела на паметта в Go — как е устроен?
Какви видове автоматизирани тестове използвахте?
Колко е удобно пълното дистанционно работене?
Може ли да се подобри алгоритъмът maxSegment?
Защо използвахте Redis вместо in-memory кеш?
Какво точно реализирахте в този микросервиз?
На този проект си от момента на наемането си през 2022 г., или си сменял проекти?
Напишете функция, която проверява дали една низ е палиндром. Проверката трябва да се извършва само върху символите на азбуката (a-zA-Za-яА-Я), без да се взема предвид регистърът (case-insensitive).
Какви са основните части на системата Transactional Outbox?
Какви гаранции за доставка може да даде брокерът за съобщения? Най-много веднъж, поне веднъж, точно веднъж.
Опишете бизнес логиката на услугата за сегментиране: как работеше процесът на обработка на данните?
Как са организирани Swiss Tables в Go?
Тестът за равномерно разпределение не премина: бекенд[0] очакваше 5 повиквания, получи 10, бекенд[1] очакваше 5 повиквания, получи 0
Трябва да опишем модела на библиотеката. Има 3 същности: "Автор", "Книга", "Читател". -- Физически, има само една книга и тя може да принадлежи само на един читател. -- Една книга може да има няколко автори.
Какъв проблем може да възникне при изпращане на събития към брокер на съобщения и как да го решите?
Има ли кариерен път? Искаш ли да се развиваш технически или към управление/тимлидерство?
Задача: Какво ще изведе кодът? ```go package main import "fmt" func main() { a := []int{1, 2, 3, 4, 5} b := a[:2] b = append(b, 100) fmt.Println(a, b) } ```
// TODO backends []*BackendImpl index int mu sync.Mutex func (b *Balancer) Invoke(ctx context.Context, req Request) (Response, error) { b.mu.Lock() index := b.index if b.index + 1 == len(b.backends) { b.index = 0 index = 0 } b.mu.Unlock() resp, err := b.backends[index].Invoke(ctx, req) b.mu.Lock() defer b.mu.Unlock() b.index += 1 return resp, err } // addr съдържа ip:port на конкретен екземпляр func NewBackend(addr string) *BackendImpl // addrs съдържат адресите на всички балансирани екземпляри func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImpl, len(addrs)) for _, addr := range addrs { backends = append(backends, NewBackend(addr)) } return &Balancer{ backends: backends, } }
Кой е основният ти език за разработка и колко години опит имаш?