Golang
Сколько primary key может быть у таблицы?
Как навесить условие на результат агрегатной функции (например, на сумму)?
Назови паттерны проектирования из разных категорий (порождающие, структурные, поведенческие, параллельного программирования) и разбери один любимый подробно.
Чем горутина отличается от потока?
SELECT department, SUM(salary) FROM employees GROUP BY department HAVING SUM(salary) > 10000; emails email | user Вывести email и фо количество
func (p *Pool) Stop() { p.mu.Unlock() // Теперь можно безопасно закрыть канал close(p.tasks) // сигнал воркерам: новых задач не будет, дочитайте остаток p.wg.Wait() // ждём завершения всех горутин p.cancel() // отменяем контекст на всякий случай fmt.Println("Pool stopped.") } // ForceStop принудительно останавливает все воркеры без ожидания завершения задач. // Воркеры будут прерваны немедленно через контекст. func (p *Pool) ForceStop(timeout time.Duration) { fmt.Printf("Force stopping pool (timeout: %v)...\n", timeout) // Блокируем добавление новых задач p.mu.Lock() p.isOpen = false p.mu.Unlock() // Закрываем канал, чтобы воркеры не брали новые задачи close(p.tasks) // Отменяем контекст – это прервет все выполняющиеся задачи p.cancel() // Даём ограниченное время на завершение done := make(chan struct{}) go func() { p.wg.Wait() close(done) }() select { case <-done: fmt.Println("Pool force stopped (все воркеры завершены)") case <-time.After(timeout): fmt.Println("Pool force stopped (timeout, могут остаться зависшие горутины)") } }
Что должна возвращать функция isBalanced для пустой строки?
Почему B-tree индекс такой популярный и универсальный?
У вас было шардирование? По какому принципу шардировали?
Что именно делали с дублями после обнаружения? Где они чистились?
Чем контейнеры отличаются от виртуальных машин?
Ты участвовал только в разработке или также в проработке требований с аналитиками?
Перечисли уровни изоляции транзакций в Postgres. Почему более строгие уровни изоляции работают медленнее? Начиная с какого уровня возникает конкуренция за данные?
Расскажи про select в Go.
С какими челленджами вы сталкивались при работе с Kafka?
Как цепочка сервисов взаимодействовала друг с другом?
Какие задачи тебе больше нравятся, а какие меньше?
Сервис обрабатывает запрос, начинает делать что-то, ретраить, а тут сам pod уходит на перезагрузку. Что произойдёт?
Если в select несколько каналов готовы одновременно, как они будут выбираться?
Что конкретно писать в сообщение Kafka? Какие поля передавать консьюмерам?