Настраивает clang-tidy с Qt-специфичными проверками. Использует cppcheck и PVS-Studio для статического анализа. Применяет RAII и smart pointers (QScopedPointer, std::unique_ptr). Пишет самодокументируемый код.
Роли · Desktop Developer (Qt/C++) · Middle
Что должен уметь Middle }
8 ключевых навыков, всего 53. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Middle }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Тестирование и QA, Контроль версий и коллаборация.
Ключевые навыки для Middle
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 3
Реализует thread pool через QThreadPool и QRunnable. Использует QMutex, QReadWriteLock, QSemaphore для синхронизации. Применяет QtConcurrent с QFuture/QFutureWatcher для async-операций. Избегает race conditions.
Управляет памятью в Qt с implicit sharing (COW) и move semantics. Использует QSharedPointer для shared ownership. Анализирует memory leaks через Qt Creator memory profiler. Оптимизирует аллокации через QVarLengthArray.
Тестирование и QA · 1
Структурирует тесты по модулям с отдельными test suites. Использует QTest::addColumn для data-driven тестов. Внедряет code coverage через gcov/lcov. Мокает зависимости через GMock или ручные стабы.
Контроль версий и коллаборация · 2
Проводит code review для Qt/C++ кода. Проверяет memory safety, thread safety, Qt best practices. Даёт конструктивную обратную связь, предлагает альтернативные решения. Ревьюит QML-код.
Применяет Git rebase, cherry-pick, bisect для отладки. Настраивает Git hooks для pre-commit проверок (clang-format, lint). Работает с Git submodules для Qt-зависимостей. Решает merge conflicts в C++/QML.
Desktop Development · 2
Применяет MVVM с Command паттерном через Qt. Использует QAbstractListModel для ViewModel, реализует фильтрацию через QSortFilterProxyModel. Организует навигацию через StackView и Router.
Самостоятельно разрабатывает Qt-приложения с QML и Qt Quick. Использует Model/View Architecture (QAbstractItemModel). Работает с Qt Network, QThread и Qt SQL. Понимает ownership и жизненный цикл QObject.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Senior
53 навыков получают более высокое ожидание или становятся ключевыми при переходе с Middle на Senior. Сначала самые большие скачки.
- Алгоритмы и сложность: Применение → Продвинутый · становится ключевым
- Асинхронное программирование: Применение → Продвинутый · становится ключевым
- Дженерики и параметрический полиморфизм: Применение → Продвинутый · становится ключевым
- Интеграционное тестирование: Применение → Продвинутый · становится ключевым
- Паттерны проектирования: Применение → Продвинутый · становится ключевым
- Практики безопасного кода: Применение → Продвинутый · становится ключевым
- Принципы ООП и SOLID: Применение → Продвинутый · становится ключевым
- Профилирование памяти: Применение → Продвинутый · становится ключевым
- Структурированное логирование: Применение → Продвинутый · становится ключевым
- Структуры данных: Применение → Продвинутый · становится ключевым
} в открытой матрице компетенций: 53 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.