Собеседование Go-разработчика: шардирование и конкурентность
Кандидат обсуждает опыт шардирования пользовательских данных и синхронизации реплик. Затем интервьюер спрашивает о Go, goroutine, интерфейсах, ошибках и подходах к тестированию.
it father.
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 5,3 тыс.
- Лайки на YouTube: 97
Таймлайн
Коротко о видео
Запись технического интервью Go-разработчика: кандидат отвечает на вопросы о шардировании пользовательских данных, размещении шардов и различиях синхронной и асинхронной репликации. Далее обсуждаются Go и PHP, goroutine и системные потоки, потокобезопасность map и slice, структурная реализация интерфейсов и типизация ошибок. В финале затрагиваются моки, snapshot-тесты и интеграционные тесты с PostgreSQL и миграциями.
Затронутые темы
Что взять на заметку
- При выборе ключа шардирования важно проверить равномерность распределения данных и нагрузки, а не ориентироваться только на размер сущности.
- Синхронная репликация усиливает гарантии сохранности подтверждённых записей ценой задержки, а асинхронная допускает лаг реплики.
- Горутины — лёгкие сущности рантайма Go, которые мультиплексируются на системные потоки.
- Обычная map требует синхронизации при конкурентной записи или одновременных чтении и записи; параллельное чтение без записей допустимо.
- Интерфейсы Go удовлетворяются структурно, а интеграционные тесты с изолированной БД могут проверить репозиторий и применение миграций.
- Обновлённый snapshot-тест нужно ревьюить: простое пересоздание снимка не подтверждает корректность нового поведения.