tRPC: вопросы на собеседовании
Вопросы и ответы по tRPC: подготовка, примеры и типичные ошибки.
Проверьте себя по tRPC: 5 вопросов, ~10 минут
Вопросов: 40. Частые идут первыми, сложные возвращаются на повторение.
- Что такое тип
AppRouterи как его экспортировать для использования на клиенте?Middle· спрашивают почти всегда - Как реализовать защищённые процедуры (protected procedures) с помощью middleware и context?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- В каких типах frontend-проектов tRPC даёт реальный выигрыш, а где будет избыточен или неудачен?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как устроены context, auth и middleware в tRPC? Где проходит security boundary?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое tRPC и какую проблему он решает? Как достигается сквозная типобезопасность (end-to-end type safety)?Middle· спрашивают почти всегда
- Что такое router в tRPC и как определять процедуры (procedures)?Middle· спрашивают почти всегда
- Чем tRPC отличается от REST и GraphQL? Когда стоит выбрать tRPC вместо них?Senior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как добавить валидацию входных данных к процедурам tRPC с помощью Zod?Middle· спрашивают почти всегда
- Что такое объект
tв tRPC (результатinitTRPC)? Что он предоставляет?Middle· полный разбор — Jobs/Boost - Как tRPC обрабатывает оптимистичные обновления (optimistic updates) при интеграции с React Query?Middle· полный разбор — Jobs/Boost
- В чём разница между
query,mutationиsubscriptionв tRPC?Middle - Как сравнить tRPC с ближайшими альтернативами по DX, performance, SEO, accessibility, hiring и поддержке команды?Middle· полный разбор — Jobs/Boost
- Что такое объект
contextв tRPC и как его создать?Middle· полный разбор — Jobs/Boost - Как понять, что проблема в проекте связана с tRPC, а не с API, сетью, дизайном состояния или плохой архитектурой?Senior
- Представьте, приложение на tRPC стало медленно открываться или часто перерисовываться. Как вы будете искать причину?Senior· полный разбор — Jobs/Boost
- Каковы ограничения tRPC? Когда его НЕ стоит выбирать?Senior· полный разбор — Jobs/Boost
- Что такое
linksв tRPC? ОбъяснитеhttpBatchLink,splitLinkиloggerLink.Middle - Что такое middleware в tRPC? Как добавить логику аутентификации и авторизации?Middle· полный разбор — Jobs/Boost
- Какие архитектурные решения tRPC навязывает вокруг rendering, state, routing, styling, data loading или deployment?Middle
- Как добавить tRPC в монорепозиторий (например, Turborepo) с раздельными пакетами фронтенда и бэкенда?Senior· полный разбор — Jobs/Boost
- Как использовать tRPC с Next.js (App Router и Pages Router)?Senior
- Как tRPC работает без генерации кода? Как типы передаются между клиентом и сервером?Middle· полный разбор — Jobs/Boost
- Какие production-риски есть у tRPC: hydration, bundle size, caching, accessibility, browser compatibility или observability?Senior· полный разбор — Jobs/Boost
- Проект на tRPC вырос из небольшого интерфейса в большой продукт. Какие архитектурные проблемы вы ожидаете увидеть?Senior· полный разбор — Jobs/Boost
- Как использовать
useUtils()(ранееuseContext()) для инвалидации кэша в tRPC?Middle· полный разбор — Jobs/Boost - В чём разница между
useQueryиuseMutationв React-клиенте tRPC?Middle· полный разбор — Jobs/Boost - Что такое функция
createCallerFactoryи как она используется для серверных вызовов?Middle· полный разбор — Jobs/Boost - Что такое клиент
createTRPCReactи как он интегрируется с React Query?Middle - Как обрабатывать загрузку файлов с помощью tRPC?Senior· полный разбор — Jobs/Boost
- Что такое HTTP batching в tRPC и каковы его компромиссы?Senior· полный разбор — Jobs/Boost
- Как объединить несколько tRPC-роутеров в один корневой роутер?Middle
- Как тестировать процедуры tRPC? Какие подходы рекомендуются?Middle
- Как tRPC обрабатывает ошибки? Что такое
TRPCErrorи какие коды ошибок доступны?Junior· полный разбор — Jobs/Boost - Расскажите о случае, когда вы улучшали performance, accessibility, testing или maintainability в проекте на tRPC.Middle
- Как реализовать subscriptions в tRPC и какой транспортный протокол они используют (WebSockets)?Senior· полный разбор — Jobs/Boost
- Как версионировать tRPC API и не ломать клиентов при изменении процедур?Middle· полный разбор — Jobs/Boost
- Что такое
createTRPCProxyClientи когда его использовать вместо React-клиента?Middle· полный разбор — Jobs/Boost - Что такое
transformerв tRPC? Для чего используетсяsuperjson?Middle· полный разбор — Jobs/Boost - Как добавить совместимость с OpenAPI/REST к tRPC API с помощью
trpc-openapi?Senior· полный разбор — Jobs/Boost - Чем tRPC v11 отличается от v10? Какие breaking changes были введены?Middle