Понимает базовую сложность O(n) и O(1) при работе с коллекциями в Angular-компонентах. Использует встроенные методы массивов (filter, map, find) в шаблонах и сервисах, осознавая их линейную стоимость.
Роли · Frontend Developer (Angular) · Junior
Что должен уметь Junior }
24 ключевых навыков, всего 52. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Junior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Frontend Development.
Ключевые навыки для Junior
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 7
Понимает промисы и async/await для HTTP-запросов в Angular-сервисах. Использует базовые RxJS-операторы (subscribe, pipe) и AsyncPipe в шаблонах для автоматической отписки от Observable.
Следует стайлгайду Angular и настроенным ESLint-правилам. Использует Angular CLI для генерации компонентов, сервисов и модулей с правильной структурой. Пишет понятные имена для свойств и методов компонентов.
Применяет базовые паттерны Angular: компонентный подход, внедрение зависимостей через конструктор, разделение на smart/dumb компоненты. Использует сервисы как синглтоны через providedIn: root.
Понимает базовые концепции ООП в TypeScript: классы, интерфейсы, декораторы, дженерики. Применяет простые принципы SOLID, следуя архитектуре Angular-проекта. Следует командным паттернам структуры классов компонентов/сервисов и использования Angular DI.
Работает с массивами и объектами в Angular-компонентах для отображения списков через @for. Понимает разницу между мутацией и иммутабельным обновлением данных для корректной работы OnPush change detection.
Использует базовые TypeScript-типы в Angular-компонентах: интерфейсы для моделей данных, типизация @Input/@Output, строгая типизация HTTP-ответов через HttpClient.get<T>(). Избегает использования any.
Frontend Development · 17
Понимает концепцию визуального регрессионного тестирования Angular-компонентов. Делает скриншоты компонентов через Storybook, знает о проблемах шрифтов и анимаций при визуальном сравнении.
Применяет базовую доступность в Angular-шаблонах: семантический HTML, alt для изображений, ARIA-атрибуты через attribute binding, использование Angular Material компонентов с встроенной a11y-поддержкой.
Пишет базовые юнит-тесты для Angular-компонентов через TestBed: проверка рендеринга, биндинг @Input, эмиссия @Output. Использует ComponentFixture и DebugElement для доступа к DOM в тестах.
Понимает влияние размера бандла на производительность Angular-приложения. Использует ng build --configuration production для tree-shaking и минификации. Анализирует бандл через source-map-explorer.
Использует готовые компоненты Angular Material или ng-zorro-antd в проекте. Понимает принципы дизайн-системы: консистентность, переиспользование компонентов, следование гайдлайнам по цветам и типографике.
Применяет современный CSS в Angular-компонентах: Flexbox и Grid для вёрстки, CSS Custom Properties для тем, :host и ::ng-deep (с осторожностью) для стилизации. Понимает ViewEncapsulation режимы.
Использует Angular Core на базовом уровне. Создаёт простые компоненты по дизайну. Понимает базовые концепции и следует component guidelines.
Понимает метрики Core Web Vitals (LCP, FID, CLS) и их измерение для Angular-приложений. Использует Chrome DevTools и Lighthouse для базовой диагностики производительности Angular-компонентов.
Использует HttpClient для GET/POST запросов в Angular-сервисах. Применяет типизацию ответов через generics, обрабатывает ошибки через catchError, отображает состояния загрузки в шаблонах.
Понимает основы PWA, включая service worker и манифесты веб-приложений в Angular. Использует Angular CLI для генерации PWA-заготовок с @angular/pwa. Следует стратегиям кэширования offline-first из документации.
Использует RxJS и реактивное программирование на базовом уровне. Создаёт простые компоненты по дизайну. Понимает базовые концепции и следует component guidelines.
Понимает концепции SSR/SSG и их преимущества для Angular-приложений: SEO, First Contentful Paint. Знает о Angular Universal и базовой настройке серверного рендеринга через ng add @angular/ssr.
Управляет состоянием в Angular через сервисы с BehaviorSubject и Angular signals. Понимает разницу между локальным состоянием компонента и глобальным состоянием приложения. Использует @Input/@Output для общения.
Применяет utility-классы Tailwind CSS в Angular-шаблонах для базовой стилизации: цвета, отступы, типографика. Использует responsive-префиксы (sm:, md:, lg:) и тёмную тему через dark:-модификатор.
Понимает роль сборщика в Angular CLI: esbuild как default builder в Angular 17+. Знает разницу между dev-сервером (быстрая пересборка) и production-сборкой (оптимизация). Использует ng serve для разработки.
Использует базовые Web API в Angular-компонентах: localStorage/sessionStorage для состояния, Fetch API через HttpClient, DOM API через ElementRef и Renderer2 вместо прямого доступа к document.
Понимает концепцию Web Components и их связь с Angular Elements. Использует готовые Web Components сторонних библиотек в Angular-шаблонах через CUSTOM_ELEMENTS_SCHEMA в компонент-метаданных.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Middle
52 навыков получают более высокое ожидание или становятся ключевыми при переходе с Junior на Middle. Сначала самые большие скачки.
- Микрофронтенды: Осведомлённость → Применение · становится ключевым
- Алгоритмы и сложность: Осведомлённость → Применение
- Асинхронное программирование: Осведомлённость → Применение
- Визуальное регрессионное тестирование: Осведомлённость → Применение
- Доступность (Accessibility): Осведомлённость → Применение
- Качество кода и рефакторинг: Осведомлённость → Применение
- Компонентное тестирование: Осведомлённость → Применение
- Оптимизация бандла: Осведомлённость → Применение
- Паттерны проектирования: Осведомлённость → Применение
- Принципы ООП и SOLID: Осведомлённость → Применение
} в открытой матрице компетенций: 52 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.