Вернуться в видеотекуСобеседование Golang программиста ЗП 7500$
Запись технического интервью по Go и backend-архитектуре на примере сервиса заказов. Вопросы охватывают DDD, интеграции между сервисами, базы данных, масштабирование и деплой.
- Направление
- Backend
- Формат
- Видео
- Длительность
- 54 мин
Коротко о видео
Техническое интервью с Golang-кандидатом построено вокруг проектирования сервиса заказов: слоёв приложения, DDD, бизнес-правил, асинхронных событий и надёжной доставки сообщений. Собеседующий разбирает с кандидатом transactional outbox как vendor-neutral подход к согласованию записи заказа и последующей публикации события, затем обсуждает gRPC/Protobuf, BFF и API Gateway, выбор хранилища и масштабирование PostgreSQL. В конце кандидат рассказывает о заявленном опыте с CI/CD, Docker, Kubernetes и OpenShift.
Затронутые темы
Что взять на заметку
- Для сервиса заказов разделяют сущности, доменные сервисы и репозитории: репозиторий инкапсулирует доступ к хранилищу, а не бизнес-решения.
- Бизнес-правила не стоит сводить к проверке формата входного REST-запроса: в разборе их предлагают размещать в доменной области и выражать через паттерн Specification.
- Ретраи публикации сами по себе не гарантируют, что после успешной записи заказа событие будет отправлено. Для этого случая собеседующий предлагает transactional outbox: заказ и запись о событии сохраняются одной транзакцией, а отдельный процесс читает outbox и публикует сообщения.
- Kafka обсуждается как распространённый брокер событий, но решение предлагают строить за интерфейсом publisher, чтобы прикладной код не зависел от конкретного брокера.
- Для синхронного межсервисного вызова в Go кандидат выбирает gRPC с Protobuf; в обсуждении важны генерация клиентов, схемы и совместимость версий контрактов.
- Для единого ответа фронту рассматриваются BFF или отдельный агрегирующий сервис; API Gateway при этом отделяют как более общий паттерн маршрутизации запросов внутри системы.
- Для горячего OLTP-сервиса заказов обсуждается реляционная БД с транзакциями; при преобладании чтения PostgreSQL масштабируют репликацией, а до неё могут применять партиционирование и индексы.