Golang
Использовали ли вы паттерны Inbox и Outbox?
// Вопрос 2. Что выведет на экран package main import "fmt" func main() { { defer fmt.Println(1) } defer fmt.Println(2) }
Какой примерно объём данных в snapshot'ах?
Что такое inline-оптимизация компилятора? В какой момент она происходит и как влияет на расположение переменных?
Что произойдёт, если читать из закрытого канала в Go?
Для чего используется context в Go?
Как оцениваешь свой уровень: middle, middle+? Что не хватает до senior?
When working with large JSON responses from an API, what performance considerations do you take into account?
Как устроен slice в Go изнутри? Как работает функция append?
Что тебе сейчас интересно в новом работодателе? Как выглядит идеальный опыт работы?
Насколько активно проходите интервью, есть ли офферы на руках?
/ * Есть два сервера PostgreSQL: * PROD - OLTP сервер, * STATS - сервер для долгих аналитических запросов. На текущем сервер в базе prod есть большая (10Tb) таблица вида: CREATE TABLE profiles( id SERIAL, data JSONB ) В таблице могут быть "дырки", т.е. некоторые `id` могут быть пропущены. Нужно написать программу для копирования таблицы profiles с PROD на STATS. Для работы с базами данных предполагается использовать следующие интерфейсы: type Row []interface{} type Database interface { // реализация интерфейса Database умеет переустанавливать подключения // вызов SaveRows идемпотентен io.Closer GetMaxID(ctx context.Context) (uint64, error) LoadRows(ctx context.Context, minID, maxID uint64) ([]Row, error) // [minID, maxID] SaveRows(ctx context.Context, rows []Row) error } func Connect(ctx context.Context, dbname string) (Database, error) // CopyTable // Если full=false то продолжить переливку данных с места прошлой ошибки // Если full=true - то перелить все данные func CopyTable(fromName string, toName string, full bool) error { // ... your code } Если передана опция `full=false`, то программа должна продолжить переливку данных с места прошлой ошибки. Если `full=true` - то должна перелить все данные. **Базовый уровень**: - последовательная переливка данных в 1 поток - восстановление после сбоев (опция `full=false`) Дополнительная информация: - при необходимости вы можете расширить интерфейс, добавив свои методы - при необходимости вы можете использовать пакет **database/sql** напрямую
Что можешь сказать про операторы в Go, писал ли ты их на работе?
Расскажи про текущую работу в Wildberries — что за платформа, какая команда, чем занимался?
Стоит ли использовать мьютексы при работе с БД?
Есть ли опыт с криптовалютами и блокчейном? Интересна ли эта область?
Как тестировали сервис? Как разворачивали в Kubernetes?
Как атомарно реализовать проверку доступности и создание заказа при выносе логики в сервис?
Что именно ищете в новом месте работы?
Как мы будем возвращать весь заказ и его частично (API дизайн)?