Новое: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 источников: карьерные страницы компаний и джоб-борды.

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

Проект на Svelte / SvelteKit вырос из небольшого интерфейса в большой продукт. Какие архитектурные проблемы вы ожидаете увидеть?

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

При росте проекта типичные проблемы: утечка глобальных stores в SSR, плоская структура маршрутов без group layouts, отсутствие типизированного API-слоя и дублирование логики авторизации в каждом load().

Состояние приложения

В маленьких проектах используют глобальные writable()-хранилища в src/lib/stores.ts. При росте:

  • Хранилища становятся тесно связанными — изменение одного требует обновления десятков подписчиков.
  • В SSR глобальные хранилища создаются один раз и могут утекать данные между запросами разных пользователей.
  • Решение: переход на Svelte 5 Runes с $state, $derived и контекстную передачу состояния через setContext/getContext.
// src/lib/context/user.ts — безопасный контекст вместо глобального store
import { setContext, getContext } from 'svelte';
import { writable } from 'svelte/store';

const USER_KEY = Symbol('user');

export function initUserContext(initialUser: User | null) {
  const store = writable(initialUser);
  setContext(USER_KEY, store);
  return store;
}

export function getUserContext() {
  return getContext<ReturnType<typeof writable<User | null>>>(USER_KEY);
}

Архитектурные проблемы при масштабировании Svelte / SvelteKit

Когда проект вырастает из MVP, накапливаются архитектурные долги, специфичные для Svelte/SvelteKit.

Структура маршрутов

  • Плоская структура src/routes/ становится неудобной при 50+ страницах.
  • Отсутствие чёткого разделения на +page.server.ts (данные) и +page.svelte (отображение) приводит к смешению логики.
  • Grouped routes (marketing)/, (app)/ позволяют использовать разные layouts без влияния на URL.

Переиспользование компонентов и дизайн-система

  • Без договорённостей компоненты дублируются в разных частях приложения.
  • Нет стандартного способа документирования — нужна интеграция с Histoire или Storybook (через @storybook/svelte).

Типизация данных

  • SvelteKit генерирует типы для параметров маршрутов в .svelte-kit/types/, но их нужно явно импортировать.
  • При отсутствии строгой типизации load() функций ошибки проявляются только в runtime.
// +page.server.ts — правильная типизация через PageServerLoad
import type { PageServerLoad } from './$types';

export const load: PageServerLoad = async ({ params, locals }) => {
  const user = locals.user; // типизировано через app.d.ts
  return { user };
};

API слой

  • API-эндпоинты в src/routes/api/ смешиваются с страницами — трудно тестировать изолированно.
  • Нет единого места для HTTP-клиента — каждый компонент делает fetch по-своему.
  • Решение: выделить src/lib/api/ с типизированными клиентами, использовать tRPC или zodios.

Производительность при большом числе компонентов

  • Svelte не имеет виртуального DOM, но при большом числе реактивных зависимостей граф реактивности растёт.
  • Компиляция svelte-check замедляется при 500+ компонентах без incremental builds.

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

  • Глобальные writable() хранилища утекают между SSR-запросами — использовать только через setContext в корневом layout.
  • Групповые layouts (group)/+layout.svelte не наследуются автоматически — каждая вложенная группа нуждается в явном +layout.ts.
  • Миграция с Svelte 4 stores на Svelte 5 Runes требует переписывания всех реактивных зависимостей — нет автоматического кодмода.
  • Vite HMR при большом числе файлов начинает тормозить без optimizeDeps.include в vite.config.ts.
  • SvelteKit не поддерживает изоморфные middleware — логику авторизации нужно дублировать в каждом load() или централизовать через хук handle.
  • Параметры маршрутов ([id]) всегда строки — типовые ошибки при передаче числа скрыты без строгой типизации PageParams.
  • Storybook для Svelte значительно отстаёт по функциональности от React-версии — рассмотрите Histoire как альтернативу.
  • Отсутствие встроенного DI-контейнера затрудняет тестирование сервисного слоя — используйте паттерн factory functions с явными зависимостями.

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

  • Что такое SvelteKit и что он добавляет поверх Svelte?
  • Что такое система runes в Svelte 5 ($state, $derived, $effect, $props)? Как она заменяет старую модель реактивности?
  • Что такое stores в Svelte? Объясните writable, readable и derived stores.
  • Как реализовать аутентификацию в SvelteKit?

Что портит ответ

  • Говорить только о запуске Svelte / SvelteKit, но не об эксплуатации
  • Не упоминать observability, обновления, безопасность и rollback
  • Описывать риски абстрактно, без способов их снижать

Что слушает интервьюер

  • Видит production-риски Svelte / SvelteKit
  • Говорит про monitoring, rollout, rollback и безопасность
  • Умеет ранжировать риски по вероятности и влиянию

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

Проверить себя по теме Svelte / SvelteKit →
←Предыдущий вопросЧто такое SvelteKit hooks (`handle`, `handleFetch`, `handleError`)?Следующий вопрос→Какие production-риски есть у Svelte / SvelteKit: hydration, bundle size, caching, accessibility, browser compatibility или observability?

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

Svelte / SvelteKitproduction-readinesstechnical-communicationtechnology-selectiontrade-off-analysis