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

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

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

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

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

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

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

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

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

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

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

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

Все подборки
  • Python17 129
  • Облачные технологии14 088
  • QA вакансии3 457
  • Backend вакансии2 115
  • Инженер данных1 805
  • Продакт-менеджер1 262

Разработка

  • Android1 865
  • iOS1 698
  • Fullstack вакансии989
  • AI вакансии949
  • Frontend вакансии744
  • Mobile вакансии44

По стеку

  • Go8 660
  • Java6 550
  • Node.js2 020
  • .NET1 722
  • Kotlin1 619
  • Rust1 455
  • C#711
  • PHP683
  • C++572

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

  • Kubernetes7 769
  • DevOps вакансии6 056
  • Linux-инфраструктура5 493
  • Terraform / IaC4 266
  • CI/CD3 250
  • Мониторинг и Observability1 788
  • SRE567
  • Кибербезопасность453

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

  • Data Scientist1 141
  • Бизнес-аналитик927
  • Аналитик данных854
  • Системный аналитик153

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

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

По регионам

  • Вакансии в США44 281
  • Вакансии в Европе23 875
  • Вакансии в Канаде4 475
  • Работа в России3 922

По формату

  • Удалённые вакансии75 035
  • Релокация в США44 281
  • Гибридная работа12 401
  • Офисная работа7 079

По уровню

  • Senior вакансии42 679
  • Middle вакансии20 894
  • Junior вакансии6 722

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

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab137 вакансий
  • Celonis39 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace16 вакансий

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

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

Что такое stores в Svelte? Объясните writable, readable и derived stores.

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

writable — store с методами set и update, readable — store только для чтения (внешние источники данных), derived — вычисляется из других stores. Все три реализуют контракт { subscribe } и совместимы с авто-подпиской через $.

writable — записываемый store

import { writable } from 'svelte/store';

const count = writable(0); // начальное значение

// set — установить новое значение
count.set(5);

// update — изменить на основе текущего
count.update(n => n + 1);

// subscribe — подписаться на изменения
const unsubscribe = count.subscribe(value => {
  console.log('count:', value); // вызовется сразу с 0, потом при каждом изменении
});

// Отписаться
unsubscribe();

Stores в Svelte

Store — любой объект с методом subscribe(callback), который вызывает callback немедленно с текущим значением и при каждом его изменении, а также возвращает функцию отписки. Svelte предоставляет три готовых примитива в пакете svelte/store.

readable — store только для чтения

Используется для данных из внешних источников: таймеры, WebSocket, геолокация. Второй аргумент — функция start, вызываемая при первом подписчике; возвращает stop для очистки.

import { readable } from 'svelte/store';

// Store текущего времени, обновляется каждую секунду
const time = readable(new Date(), function start(set) {
  const interval = setInterval(() => set(new Date()), 1000);

  // Вызывается при последнем отписчике
  return function stop() {
    clearInterval(interval);
  };
});

// Использование в компоненте:
// <p>{$time.toLocaleTimeString()}</p>

derived — производный store

Вычисляется из одного или нескольких stores. Обновляется автоматически при изменении исходников.

import { writable, derived } from 'svelte/store';

const price = writable(100);
const quantity = writable(3);

// Из одного store
const doubled = derived(price, $price => $price * 2);

// Из нескольких stores
const total = derived(
  [price, quantity],
  ([$price, $quantity]) => $price * $quantity
);

// Асинхронный derived — третий аргумент: начальное значение
const asyncData = derived(
  url,
  ($url, set) => {
    fetch($url)
      .then(r => r.json())
      .then(set);
    return () => {}; // cleanup
  },
  null // начальное значение до первого resolve
);

Кастомный store

Можно создать store с инкапсулированной логикой, экспортируя только нужные методы:

import { writable } from 'svelte/store';

function createCart() {
  const { subscribe, update, set } = writable([]);

  return {
    subscribe, // обязателен для $ авто-подписки
    addItem: (item) => update(items => [...items, item]),
    removeItem: (id) => update(items => items.filter(i => i.id !== id)),
    clear: () => set([])
  };
}

export const cart = createCart();

// В компоненте:
// import { cart } from './stores.js';
// cart.addItem({ id: 1, name: 'Товар' });
// {$cart.length} товаров

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

  • readable не запускает start до первой подписки — если никто не подписан, данные не обновляются. Это экономит ресурсы, но может удивить при первом use.
  • derived пересчитывается синхронно для каждого обновления зависимости — тяжёлые вычисления в derived могут тормозить UI; используйте debounce внутри.
  • Подписка в обычном JS возвращает unsubscribe — забытый вызов отписки — утечка памяти. Только в .svelte файлах $ управляет этим автоматически.
  • Начальное значение derived по умолчанию undefined — если используется в шаблоне без fallback, может рендерить пустоту до первого вычисления.
  • Циклические зависимости между derived-stores приводят к бесконечному циклу обновлений.
  • update() не атомарен при множественных вызовах подряд — если нужно изменить несколько stores одновременно, используйте svelte/store batch (или рефакторите в один store).
  • В Svelte 5 stores остаются для обратной совместимости, но для нового кода рекомендуются руны $state и $derived.

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

  • Путать Svelte stores с похожим API из соседнего фреймворка.
  • Не объяснять, где код выполняется: сервер, клиент, build step или runtime.
  • Игнорировать влияние на hydration, cache, bundle size или безопасность.

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

  • Точно объясняет назначение механизма «Svelte stores».
  • Показывает корректный минимальный пример без выдуманных API.
  • Называет ограничения, failure modes и production-компромиссы.

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

Проверить себя по теме Svelte / SvelteKit →

Источники

  • https://svelte.dev/docs/svelte/stores
←Предыдущий вопросЧто такое система runes в Svelte 5 (`$state`, `$derived`, `$effect`, `$props`)? Как она заменяет старую модель реактивности?Следующий вопрос→Как реализовать аутентификацию в SvelteKit?

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

Svelte / SvelteKitapi-designstate-management

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

  • Что такое SvelteKit и что он добавляет поверх Svelte?
  • Что такое система runes в Svelte 5 ($state, $derived, $effect, $props)? Как она заменяет старую модель реактивности?
  • Как реализовать аутентификацию в SvelteKit?
  • Как работает файловая маршрутизация в SvelteKit? Что такое +page.svelte, +layout.svelte, +page.server.ts?