Оптимизирует алгоритмы фильтрации и сортировки данных в computed-свойствах Pinia-сторов. Применяет мемоизацию и кэширование в VueUse-composables для предотвращения лишних вычислений при обновлении реактивного состояния.
Роли · Frontend Developer (Vue) · Middle
Что должен уметь Middle }
26 ключевых навыков, всего 55. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Middle }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Frontend Development, Безопасность.
Ключевые навыки для Middle
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 6
Реализует сложные асинхронные потоки с useAsyncState и useFetch из VueUse. Управляет race conditions в watchers через watchEffect с cleanup-функциями, организует параллельную загрузку данных в Nuxt 3 middleware.
Настраивает строгие правила ESLint для Vue 3 — vue/recommended, TypeScript strict mode, auto-fix через Vite plugin. Внедряет Husky + lint-staged для pre-commit проверок, пишет переиспользуемые composables с JSDoc.
Реализует паттерны Renderless Components, Compound Components и Headless UI во Vue 3. Проектирует переиспользуемые composables с инверсией контроля, применяет Strategy и Observer через систему реактивности Vue.
Проектирует нормализованные структуры данных в Pinia-сторах для эффективного обновления UI. Использует Map и Set в composables, понимает работу реактивного прокси Vue 3 с различными типами коллекций.
Создаёт строго типизированные composables и Pinia-сторы с generics. Настраивает TypeScript strict mode для Vue-проекта, типизирует provide/inject, route params в Nuxt 3 и API-ответы через Zod-валидацию.
Frontend Development · 19
Настраивает visual regression тесты для Vue-компонентов через Playwright и Percy/Chromatic. Интегрирует с Storybook — автоматические скриншот-тесты для каждого story, настраивает threshold и viewport breakpoints.
Реализует accessible Vue-компоненты: создает keyboard-navigable components с v-on:keydown, управляет фокусом через template refs, реализует accessible form validation с aria-describedby и aria-invalid. Использует Headless UI или Radix Vue для accessible primitives.
Создаёт комплексные component-тесты — мокирование Pinia-сторов, Vue Router, API-вызовов через MSW. Тестирует composables изолированно, использует Vitest snapshot-тесты и custom matchers для Vue-специфичных проверок.
Работает с micro-frontends в Vue: использует vite-plugin-federation для Module Federation, реализует Vue components как Web Components для framework-agnostic интеграции, настраивает shared Pinia store между micro-frontends. Управляет shared CSS через CSS Modules isolation.
Оптимизирует бандл Vue-приложения — настройка Vite rollupOptions для chunk splitting, manualChunks для vendor-библиотек. Настраивает code splitting по роутам Nuxt 3, оптимизирует размер Pinia-сторов через tree shaking.
Создаёт библиотеку Vue-компонентов с единым API — slots, expose, v-model кастомизация. Документирует компоненты в Storybook с Histoire, пишет component tests через Vitest и Vue Test Utils.
Создаёт адаптивные макеты с Container Queries и CSS Grid во Vue-компонентах. Реализует анимации через CSS Transitions и Vue Transition/TransitionGroup, использует :deep() и :slotted() селекторы.
Оптимизирует Core Web Vitals Vue-приложения — code splitting через динамические import(), оптимизация LCP с Nuxt Image, устранение CLS через skeleton screens и aspect-ratio для медиа-контента.
Реализует сложные Vue-компоненты с CSS-in-JS библиотеками или scoped styles с динамическими bindings. Оптимизирует рендеринг, минимизируя пересчёты стилей в реактивном контексте. Применяет паттерны переключения тем и state-driven стилизации в Vue SFC.
Реализует эффективную загрузку данных — кэширование через useFetch с ключами, параллельные запросы, дедупликация. Настраивает interceptors через ofetch, реализует optimistic updates в Pinia-сторах с rollback при ошибках.
Самостоятельно реализует сложные UI-компоненты с Nuxt. Оптимизирует производительность рендеринга. Пишет тесты. Применяет инструменты для state management.
Настраивает PWA для Vue/Nuxt — стратегии кэширования Workbox, push-уведомления, background sync. Реализует offline-first подход с Pinia-сторами и IndexedDB, настраивает @vite-pwa/nuxt для Nuxt 3.
Реализует гибридный рендеринг в Nuxt 3 — ISR через routeRules, SWR-кэширование, prerendering статических страниц. Решает проблемы hydration mismatch, настраивает client-only и server-only компоненты.
Проектирует структуру Pinia-сторов — модульная организация, composable stores, плагины для персистенции и devtools. Использует VueUse composables для глобального состояния — useStorage, useBreakpoints, createSharedComposable.
Создаёт кастомную дизайн-систему на Tailwind для Vue-проекта — custom theme, плагины, компоненты на Headless UI. Оптимизирует PurgeCSS конфигурацию для Vite, использует @tailwindcss/typography и анимации.
Настраивает Vite для Vue-проекта — плагины (unplugin-auto-import, unplugin-vue-components), proxy для API, оптимизация dep pre-bundling. Конфигурирует Vitest через vite.config, настраивает SSR режим для Nuxt.
Самостоятельно реализует сложные UI-компоненты с Vue Core. Оптимизирует производительность рендеринга. Пишет тесты. Применяет инструменты для state management.
Реализует интеграцию с Web API через кастомные composables — WebSocket, Geolocation, Notifications, Clipboard API. Использует VueUse как reference для паттернов, обрабатывает permissions и fallbacks корректно.
Создаёт Web Components из Vue-компонентов через defineCustomElement для интеграции с другими фреймворками. Настраивает Vite для сборки component library как Web Components с корректной стилизацией и event handling.
Безопасность · 1
Реализует защиту Vue-приложения от OWASP Top 10 — CSP headers в Nuxt, sanitization пользовательского ввода, secure cookie configuration. Настраивает Nuxt Security модуль, проводит аудит зависимостей через npm audit.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Senior
55 навыков получают более высокое ожидание или становятся ключевыми при переходе с Middle на Senior. Сначала самые большие скачки.
- Тестирование доступности: Применение → Продвинутый · становится ключевым
- ChatGPT / Claude: Применение → Продвинутый · становится ключевым
- Code Review: Применение → Продвинутый · становится ключевым
- Docker: Применение → Продвинутый · становится ключевым
- E2E тестирование: Применение → Продвинутый · становится ключевым
- Git Advanced: Применение → Продвинутый · становится ключевым
- GitHub Actions / GitLab CI: Применение → Продвинутый · становится ключевым
- GitHub Copilot: Применение → Продвинутый · становится ключевым
- GraphQL Design: Применение → Продвинутый · становится ключевым
- Performance Budgets: Применение → Продвинутый · становится ключевым
} в открытой матрице компетенций: 55 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.