Вернуться в видеотеку

Собеседование Go-разработчика: шардирование и конкурентность

Кандидат обсуждает опыт шардирования пользовательских данных и синхронизации реплик. Затем интервьюер спрашивает о Go, goroutine, интерфейсах, ошибках и подходах к тестированию.

Источник: it father.

Открыть на YouTube

Таймлайн

Коротко о видео

Запись технического интервью Go-разработчика: кандидат отвечает на вопросы о шардировании пользовательских данных, размещении шардов и различиях синхронной и асинхронной репликации. Далее обсуждаются Go и PHP, goroutine и системные потоки, потокобезопасность map и slice, структурная реализация интерфейсов и типизация ошибок. В финале затрагиваются моки, snapshot-тесты и интеграционные тесты с PostgreSQL и миграциями.

Затронутые темы

Что взять на заметку

  • При выборе ключа шардирования важно проверить равномерность распределения данных и нагрузки, а не ориентироваться только на размер сущности.
  • Синхронная репликация усиливает гарантии сохранности подтверждённых записей ценой задержки, а асинхронная допускает лаг реплики.
  • Горутины — лёгкие сущности рантайма Go, которые мультиплексируются на системные потоки.
  • Обычная map требует синхронизации при конкурентной записи или одновременных чтении и записи; параллельное чтение без записей допустимо.
  • Интерфейсы Go удовлетворяются структурно, а интеграционные тесты с изолированной БД могут проверить репозиторий и применение миграций.
  • Обновлённый snapshot-тест нужно ревьюить: простое пересоздание снимка не подтверждает корректность нового поведения.

Рекомендуем посмотреть