Golang
Kafka Outbox ты настраивал самостоятельно?
Расскажите про Kafka: топики, партиции, консьюмер-группы, гарантии доставки.
type Response interface{} type Backend interface { Invoke(ctx context.Context, req Request) (Response, error) } var _ Backend = &BackendImpl{} // addr содержит ip:port конкретного экземпляра func NewBackend(addr string) *BackendImpl type Balancer struct { // TODO backends []*BackendImpl index int mu sync.Mutex } 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 if b.index + 1 == len(b.backends) { b.index = 0 index = 0 } b.mu.Unlock() resp, err := b.backends[index].Invoke(ctx, req) return resp, err } // addrs содержит адреса всех балансируемых экземпляров func NewBalancer(addrs []string) *Balancer { // TODO backends := make([]*BackendImpl, len(addrs))
Слой репозитория — что он может видеть?
Почему сейчас рассматриваешь уход с текущего места работы?
Расскажи про проект в Logitrade: чем занимался и почему ушёл?
Слышали что-нибудь про QUIC? Что это такое?
Зачем нужен UDP поверх IP, если он не предоставляет гарантии доставки?
Насколько активно рассматриваешь предложения? Есть ли уже офферы, дедлайны по их принятию?
Что такое fork?
Расскажи про модель GMP в Go. Как работают очереди, что такое handoff, work stealing, netpoller?
Для чего можно использовать глобальную переменную в Go?
WHERE A=a AND B=b vs WHERE B=b AND A=a Какой составной индекс вы бы сделали.
Какие типы памяти есть в Go? Чем отличается стек от кучи (heap)?
Перечислите базы данных, которые знаете, и оцените по 10-балльной шкале.
Что происходит, когда объявляешь поле первичным ключом в PostgreSQL?
Какие подводные камни при итерировании по map в Go?
Как работает context.WithCancel с отменой?
Занимались ли созданием таблиц для аналитиков в ClickHouse? С какими движками сталкивались?
Какими индексами пользовались, по каким полям выбирали и почему?