Настраивает StyleCop, SonarAnalyzer для статического анализа. Использует Roslyn analyzers и code fixes. Применяет code metrics (cyclomatic complexity, coupling). Пишет самодокументируемый код с XML-comments.
Роли · Desktop Developer (.NET WPF/WinUI/MAUI) · Middle
Что должен уметь Middle }
8 ключевых навыков, всего 53. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Middle }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Тестирование и QA, Контроль версий и коллаборация.
Ключевые навыки для Middle
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 3
Реализует concurrent операции через Task Parallel Library (TPL). Использует CancellationToken для отмены операций. Применяет SemaphoreSlim, lock, ReaderWriterLockSlim для синхронизации. Работает с Channels.
Управляет памятью через Span<T>, Memory<T>, ArrayPool<T>. Анализирует GC pressure через dotnet-counters. Оптимизирует struct vs class выбор для hot path. Использует WeakReference для cache patterns.
Тестирование и QA · 1
Структурирует тесты по модулям. Использует Moq/NSubstitute для мокирования зависимостей. Внедряет code coverage через coverlet. Применяет FluentAssertions для readable assertions.
Контроль версий и коллаборация · 2
Проводит code review для C#/.NET desktop кода. Проверяет async/await correctness, MVVM adherence, memory management. Даёт конструктивную обратную связь. Ревьюит XAML.
Применяет Git rebase, cherry-pick, bisect. Настраивает Git hooks с dotnet-format pre-commit. Работает с Git submodules для shared libraries. Решает merge conflicts в .csproj и XAML.
Desktop Development · 2
Применяет MVVM с ObservableValidator для validation. Использует IMessenger (WeakReferenceMessenger) для inter-ViewModel communication. Организует навигацию через INavigationService. Реализует async commands.
Самостоятельно разрабатывает WPF/WinUI приложения с MVVM через CommunityToolkit.Mvvm. Создаёт кастомные UserControl и ControlTemplate. Работает с DataTemplate, IValueConverter. Использует Navigation через Frame.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Senior
53 навыков получают более высокое ожидание или становятся ключевыми при переходе с Middle на Senior. Сначала самые большие скачки.
- Алгоритмы и сложность: Применение → Продвинутый · становится ключевым
- Асинхронное программирование: Применение → Продвинутый · становится ключевым
- Дженерики и параметрический полиморфизм: Применение → Продвинутый · становится ключевым
- Индексирование БД: Применение → Продвинутый · становится ключевым
- Интеграционное тестирование: Применение → Продвинутый · становится ключевым
- Компонентное тестирование: Применение → Продвинутый · становится ключевым
- Паттерны проектирования: Применение → Продвинутый · становится ключевым
- Практики безопасного кода: Применение → Продвинутый · становится ключевым
- Принципы ООП и SOLID: Применение → Продвинутый · становится ключевым
- Профилирование памяти: Применение → Продвинутый · становится ключевым
} в открытой матрице компетенций: 53 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.