gRPC-Go: вопросы на собеседовании
Вопросы и ответы по gRPC-Go: подготовка, примеры и типичные ошибки.
Проверьте себя по gRPC-Go: 5 вопросов, ~10 минут
Вопросов: 42. Частые идут первыми, сложные возвращаются на повторение.
- Как работает propagation дедлайнов и таймаутов в gRPC-Go с помощью
context?Middle· спрашивают почти всегда - Как определить gRPC-сервис в файле
.proto?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost - Как сгенерировать Go-код из файла
.protoс помощьюprotoc?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost - Как работает аутентификация в gRPC? Как реализовать TLS и mutual TLS (mTLS)?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как обрабатывать ошибки в gRPC-Go? Что такое gRPC status codes?Middle· спрашивают почти всегда
- В каких проектах gRPC-Go оправдан, а где он становится источником лишней сложности?Middle· спрашивают почти всегда
- Что такое gRPC interceptor и чем он отличается от HTTP middleware? Как реализовать его в Go?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое gRPC metadata и как она используется?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Какой транспортный протокол использует gRPC и почему это важно?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Каковы четыре типа паттернов взаимодействия gRPC? Объясните unary, server streaming, client streaming и bidirectional streaming.Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое gRPC и каковы его основные преимущества перед REST?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как реализовать gRPC-клиент на Go?Junior· спрашивают почти всегда
- Как реализовать gRPC-сервер на Go?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как реализовать token-based аутентификацию (JWT) в gRPC с помощью metadata?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое Protocol Buffers (protobuf) и почему gRPC использует его вместо JSON?Junior· спрашивают почти всегда
- Как реализовать отмену (cancellation) в gRPC streaming calls?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как реализовать graceful shutdown gRPC-сервера на Go?Middle
- Как сравнить gRPC-Go с альтернативами по надёжности, скорости разработки, portability, performance и operational cost?Middle· полный разбор — Jobs/Boost
- Какая mental model gRPC-Go важна для диагностики: lifecycle, graph, runtime, targets, protocol, threads или resources?Senior· полный разбор — Jobs/Boost
- Как понять, что проблема связана именно с gRPC-Go, а не с приложением, окружением, сетью или зависимостями?Senior· полный разбор — Jobs/Boost
- Представьте, после изменения gRPC-Go сборка, runtime или интеграция стали нестабильными. Как вы будете расследовать проблему?Senior
- Какие ошибки делают команды, когда используют gRPC-Go без понимания его модели выполнения или сборки?Middle· полный разбор — Jobs/Boost
- Какую инженерную проблему gRPC-Go решает в build/runtime/systems-разработке, если не сводить ответ к определению?Middle· полный разбор — Jobs/Boost
- Какие production или build/runtime-риски есть у gRPC-Go: воспроизводимость, совместимость, debugging, ресурсы или supply chain?Senior
- Как реализовать health checking в gRPC с использованием стандартного протокола проверки работоспособности?Middle· полный разбор — Jobs/Boost
- Как gRPC обрабатывает балансировку нагрузки? Какие стратегии клиентской балансировки нагрузки существуют в gRPC-Go?Senior
- Как реализовать логику повторных попыток (retry) в gRPC-Go?Senior· полный разбор — Jobs/Boost
- Что такое
google.golang.org/grpc/keepaliveи почему это важно для продакшен-развёртываний?Middle - Как обрабатывать большие payload в gRPC и каковы ограничения на размер сообщений?Senior· полный разбор — Jobs/Boost
- В чём разница между
grpc.Dial()иgrpc.NewClient()в последних версиях gRPC-Go?Middle· полный разбор — Jobs/Boost - В чём разница между unary interceptors и stream interceptors в gRPC-Go?Middle
- Когда следует выбирать gRPC вместо REST или GraphQL в микросервисной архитектуре?Senior· полный разбор — Jobs/Boost
- Как сжимать gRPC-сообщения и какие компрессоры доступны?Middle· полный разбор — Jobs/Boost
- Как работают client/server interceptors и где реализовать auth, logging и retry?Middle
- Как работают deadlines, cancellation и propagation через metadata в gRPC-Go?Middle· полный разбор — Jobs/Boost
- Расскажите о случае, когда вы решали проблему с gRPC-Go: incident, optimization, migration, debugging или CI/CD.Middle· полный разбор — Jobs/Boost
- Как эволюционировать proto-схемы без breaking changes?Middle· полный разбор — Jobs/Boost
- Как сопоставить gRPC status codes с HTTP status codes при использовании gateway?Senior
- В чём разница между gRPC и gRPC-web?Middle· полный разбор — Jobs/Boost
- Как тестировать gRPC-сервисы на Go (unit-тестирование с mock-клиентами, интеграционное тестирование)?Middle· полный разбор — Jobs/Boost
- Что такое
grpc-gatewayи когда его следует использовать?Middle· полный разбор — Jobs/Boost - Что такое gRPC reflection и когда он полезен?Middle