Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 487новых вакансий за сутки·92 551вакансия открыта сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании7 220
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 402 кандидата открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python17 105
  • Облачные технологии14 073
  • QA вакансии3 460
  • Backend вакансии2 098
  • Инженер данных1 805
  • Продакт-менеджер1 266

Разработка

  • Android1 866
  • iOS1 699
  • Fullstack вакансии979
  • AI вакансии951
  • Frontend вакансии742
  • Mobile вакансии44

По стеку

  • Go8 651
  • Java6 544
  • Node.js2 018
  • .NET1 719
  • Kotlin1 623
  • Rust1 453
  • C#709
  • PHP683
  • C++571

DevOps и инфраструктура

  • Kubernetes7 763
  • DevOps вакансии6 057
  • Linux-инфраструктура5 492
  • Terraform / IaC4 261
  • CI/CD3 240
  • Мониторинг и Observability1 783
  • SRE566
  • Кибербезопасность453

Аналитика и данные

  • Data Scientist1 140
  • Бизнес-аналитик930
  • Аналитик данных853
  • Системный аналитик154

Другие направления

  • Проджект-менеджер615
  • UI/UX дизайн146
  • Ручное тестирование14

По регионам

  • Вакансии в США43 685
  • Вакансии в Европе23 862
  • Вакансии в Канаде4 413
  • Работа в России3 909

По формату

  • Удалённые вакансии73 887
  • Релокация в США43 685
  • Гибридная работа12 392
  • Офисная работа7 088

По уровню

  • Senior вакансии42 236
  • Middle вакансии20 545
  • Junior вакансии6 653

Сейчас нанимают

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab138 вакансий
  • Celonis39 вакансий
  • Spotify36 вакансий
  • Adyen29 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace16 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме tRPCВсе вопросы
tRPCMiddleТеория

Чем tRPC v11 отличается от v10? Какие breaking changes были введены?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

tRPC v11 переработал транспортный слой: httpSubscriptionLink для SSE-подписок без WebSocket, поддержка формдата, трансформеры переехали в links. Breaking changes: новый API инициализации, изменённые типы контекста, обновлённый fetchRequestHandler.

1. httpSubscriptionLink — SSE без WebSocket

В v10 единственный способ подписок — WebSocket через wsLink. v11 добавляет httpSubscriptionLink, который использует Server-Sent Events (SSE). Это проще в деплое: не нужен отдельный WebSocket-сервер, работает через стандартный HTTP.

// v11: SSE подписки
import { createTRPCClient, httpBatchLink, httpSubscriptionLink, splitLink } from '@trpc/client';

const client = createTRPCClient<AppRouter>({
  links: [
    splitLink({
      condition: (op) => op.type === 'subscription',
      true: httpSubscriptionLink({ url: '/api/trpc' }), // SSE!
      false: httpBatchLink({ url: '/api/trpc' }),
    }),
  ],
});

Ключевые нововведения tRPC v11

2. Трансформеры переехали в links

В v10 трансформер задавался глобально при инициализации клиента. В v11 он передаётся напрямую в каждый link — это даёт гибкость: разные links могут использовать разные трансформеры.

// v10 (устарело)
const client = createTRPCProxyClient<AppRouter>({
  transformer: superjson, // глобально
  links: [httpBatchLink({ url: '/api/trpc' })],
});

// v11 (новый подход)
import superjson from 'superjson';

const client = createTRPCClient<AppRouter>({
  links: [
    httpBatchLink({
      url: '/api/trpc',
      transformer: superjson, // в link
    }),
  ],
});

3. createTRPCClient вместо createTRPCProxyClient

createTRPCProxyClient переименован в createTRPCClient. Старое имя оставлено как deprecated alias, но рекомендуется обновить импорты.

// v10
import { createTRPCProxyClient } from '@trpc/client';

// v11
import { createTRPCClient } from '@trpc/client';

4. fetchRequestHandler обновлён

Адаптер для Edge Runtime и App Router стал основным вместо createNextApiHandler. API немного изменился:

// app/api/trpc/[trpc]/route.ts (v11)
import { fetchRequestHandler } from '@trpc/server/adapters/fetch';
import { appRouter } from '../../../../server/trpc/router';

const handler = (req: Request) =>
  fetchRequestHandler({
    endpoint: '/api/trpc',
    req,
    router: appRouter,
    createContext: () => ({ req }), // контекст теперь принимает Request напрямую
  });

export { handler as GET, handler as POST };

5. Поддержка FormData и File Upload

v11 добавляет нативную поддержку загрузки файлов через FormData в процедурах:

// server: принимаем файл
uploadAvatar: protectedProcedure
  .input(z.instanceof(FormData))
  .mutation(async ({ input, ctx }) => {
    const file = input.get('file') as File;
    // обрабатываем файл...
    return { url: '/uploads/' + file.name };
  }),

6. Типы контекста и middleware

В v11 уточнены generic-типы middleware. Тип возвращаемого значения next() теперь строже типизирован — код с неявным any в middleware может начать выдавать ошибки типов при миграции.

Breaking Changes при миграции с v10

  • Переместить transformer из корневого конфига клиента в каждый link
  • Заменить createTRPCProxyClient на createTRPCClient
  • Проверить типы middleware — могут появиться новые ошибки TypeScript
  • Обновить @trpc/server, @trpc/client, @trpc/react-query одновременно — версии должны совпадать

Подводные камни

  • Обновление только одного пакета из группы (@trpc/server без @trpc/client) приводит к ошибкам типов и рантайм-несовместимости — обновляйте все пакеты tRPC вместе.
  • SSE через httpSubscriptionLink не работает в браузерах без поддержки EventSource — проверьте совместимость с вашей целевой аудиторией (IE11 не поддерживает).
  • При переносе трансформера в link нужно обновить и серверную, и клиентскую конфигурацию одновременно — промежуточное состояние приведёт к битой сериализации.
  • Changelog v11 содержит экспериментальные API (помечены unstable_) — не используйте их в продакшене, интерфейс может измениться в патч-версии.
  • Если проект использует кастомные links, нужно проверить совместимость observable-API — внутренние типы обновились.
  • FormData upload требует настройки CSRF-защиты отдельно — tRPC не добавляет её автоматически.
  • Документация v11 в период выхода была неполной — опирайтесь на changelog и issues в GitHub репозитории trpc/trpc для актуальных примеров.

Частые вопросы на собеседовании

  • Чем tRPC отличается от REST и GraphQL? Когда стоит выбрать tRPC вместо них?
  • Как реализовать защищённые процедуры (protected procedures) с помощью middleware и context?
  • Как добавить валидацию входных данных к процедурам tRPC с помощью Zod?
  • В каких типах frontend-проектов tRPC даёт реальный выигрыш, а где будет избыточен или неудачен?

Типичные ошибки

  • Смешивать «tRPC v11 и v10» с похожим механизмом без критерия выбора.
  • Игнорировать риск: неверно оценить границы применения темы «tRPC v11 и v10» и получить хрупкое решение.
  • Показывать только синтаксис и не объяснять поведение в runtime или сборке.

Что проверяет интервьюер

  • Объясняет миграция версии, обновление пакетов и изменения integration surface.
  • Показывает на примере, как работает: v11 требует сверяться с migration guide, особенно для React Query integration, server adapters, links и unstable/internal imports; нельзя переносить v10 snippets без проверки текущих docs.
  • Называет production-нюанс и граничный случай для темы «tRPC v11 и v10».

Как вы знаете этот вопрос?

Проверить себя по теме tRPC →

Источники

  • https://trpc.io/docs/migrate-from-v10-to-v11

Связанные темы

tRPCmigration-planningTypechecking