Понимает базовые алгоритмы сортировки и поиска, оценивает O(n) простых циклов в Svelte-компонентах. Использует Array.filter/map/reduce для обработки данных в реактивных выражениях $derived, избегая лишних пересчётов в шаблонах.
Роли · Frontend Developer (Svelte) · Junior
Что должен уметь Junior }
23 ключевых навыков, всего 51. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Junior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Frontend Development.
Ключевые навыки для Junior
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 6
Использует async/await в load-функциях SvelteKit для получения данных, обрабатывает Promise в {#await}-блоках шаблонов. Понимает жизненный цикл асинхронных операций в компонентах, корректно отображает состояния загрузки и ошибок.
Следует базовым правилам eslint-plugin-svelte и Prettier для единообразного форматирования Svelte-компонентов. Запускает svelte-check для обнаружения ошибок типов и доступности, придерживается соглашений именования файлов в SvelteKit-маршрутах.
Применяет базовые паттерны в Svelte: компонентная композиция, проброс пропсов и слотов, использование $props() для деструктуризации входных данных. Понимает паттерн контейнер/презентация для разделения логики и отображения в компонентах.
Работает с массивами, объектами и Map/Set для хранения состояния в Svelte-компонентах через $state. Понимает иммутабельные обновления для корректной реактивности, использует spread-оператор для обновления вложенных структур.
Использует TypeScript в Svelte-компонентах с lang="ts", типизирует $props() и основные переменные $state. Понимает базовые типы для SvelteKit load-функций (PageData, PageServerLoad), применяет встроенные типы Svelte для событий компонентов.
Frontend Development · 17
Понимает концепцию визуального регрессионного тестирования для Svelte-компонентов, делает скриншот-тесты через Playwright. Настраивает базовые snapshot-тесты для ключевых страниц SvelteKit-приложения, сравнивает визуальные различия в pull request-ах.
Следует базовым правилам доступности в Svelte: семантическая разметка, alt-атрибуты, ARIA-роли. Использует встроенные a11y-предупреждения компилятора Svelte, обеспечивает клавиатурную навигацию для интерактивных компонентов в SvelteKit-приложении.
Пишет базовые тесты Svelte-компонентов через @testing-library/svelte и Vitest: рендеринг, проверка текста, клики. Тестирует простые пропсы и события компонентов, использует screen.getByRole для accessible-селекторов, запускает тесты через vitest --run.
Понимает роль Vite и Rollup в бандлинге SvelteKit-приложений, анализирует размер бандла через rollup-plugin-visualizer. Применяет базовые оптимизации: dynamic import() для ленивой загрузки маршрутов, tree-shaking неиспользуемого кода из Svelte-библиотек.
Использует готовые компоненты из Skeleton UI или других Svelte UI-библиотек, следуя документированным паттернам. Применяет design tokens (CSS variables) для цветов и типографики, создаёт простые переиспользуемые Svelte-компоненты согласно гайдлайнам.
Использует scoped-стили в Svelte-компонентах, применяет CSS Grid и Flexbox для адаптивной вёрстки. Понимает каскадность в контексте Svelte: стили компонента изолированы, глобальные стили через :global(). Работает с CSS variables для тем оформления.
Понимает метрики LCP, FID/INP и CLS в контексте SvelteKit-приложений, измеряет их через Lighthouse и PageSpeed Insights. Следует базовым практикам: оптимизирует размер изображений, избегает layout shifts от динамического контента в Svelte-компонентах.
Использует CSS-in-JS на базовом уровне. Создаёт простые компоненты по дизайну. Понимает базовые концепции и следует component guidelines.
Использует SvelteKit load-функции для получения данных на сервере и клиенте, обрабатывает состояния загрузки через {#await}. Понимает разницу между +page.server.js и +page.js load-функциях, передаёт данные в компоненты через $page.data и export let data.
Понимает принципы PWA и применяет их в приложениях SvelteKit. Настраивает service worker и файлы манифеста для возможности установки. Использует встроенную поддержку service worker в SvelteKit для базовых офлайн-возможностей.
Понимает разницу между SSR, SSG и CSR в SvelteKit, использует prerender: true для статических страниц. Работает с +page.server.js для серверного рендеринга, понимает гидратацию и передачу данных от сервера к клиенту через PageData.
Управляет локальным состоянием в Svelte-компонентах через $state и $derived руны, использует writable/readable stores для shared-состояния. Понимает реактивность Svelte 5: автоматическое отслеживание зависимостей, $effect для побочных эффектов при изменении данных.
Использует Svelte / SvelteKit на базовом уровне. Создаёт простые компоненты по дизайну. Понимает базовые концепции и следует component guidelines.
Применяет базовые utility-классы Tailwind CSS в Svelte-компонентах для типовой вёрстки: отступы, цвета, flexbox. Использует @apply в scoped-стилях компонентов для группировки повторяющихся классов, работает с конфигурацией Tailwind из шаблона SvelteKit.
Понимает роль Vite как dev-сервера и бандлера в SvelteKit, использует стандартную конфигурацию vite.config.js. Работает с HMR для быстрой разработки Svelte-компонентов, понимает различие dev/build режимов и базовые Vite-переменные окружения.
Использует базовые Web API в Svelte-компонентах: Fetch API в load-функциях, localStorage для персистентности, IntersectionObserver через use:action. Понимает различие browser/server контекста в SvelteKit, проверяет доступность API через typeof window.
Понимает Web Components и их совместимость со Svelte. Компилирует Svelte-компоненты как custom elements для кросс-фреймворкового переиспользования. Работает с Shadow DOM и slot-based композицией.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Middle
51 навыков получают более высокое ожидание или становятся ключевыми при переходе с Junior на Middle. Сначала самые большие скачки.
- Микрофронтенды: Осведомлённость → Применение · становится ключевым
- Алгоритмы и сложность: Осведомлённость → Применение
- Асинхронное программирование: Осведомлённость → Применение
- Визуальное регрессионное тестирование: Осведомлённость → Применение
- Доступность (Accessibility): Осведомлённость → Применение
- Качество кода и рефакторинг: Осведомлённость → Применение
- Компонентное тестирование: Осведомлённость → Применение
- Оптимизация бандла: Осведомлённость → Применение
- Паттерны проектирования: Осведомлённость → Применение
- Разработка дизайн-систем: Осведомлённость → Применение
} в открытой матрице компетенций: 51 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.