Рефакторинг кода. Редакция для С++
Как устроено обучение
Подробнее
Что нужно для старта
- Базовые общие знания в области программирования. Базовые знания скриптовых языков. Способность понимать логические потоки кода.
Что вы получите
- Выделять проблемные места в программном коде на языке C++
- Улучшать читабельность исходного кода на языке C++
- Применять техники рефакторинга для улучшения архитектуры кода
- Избавляться от запахов кода и улучшать дизайн программ
- Проводить разработку через тестирование (TDD)
Для кого этот курс
- Разработчик
Программа курса
• Определение рефакторинга
• Основы разработки через тестирование
• Практика: Разработка модуля по методологии «Разработка через тестирование»
• Определение запаха кода.
• Принципы хорошего дизайна.
• Запахи кода в тестах, запахи в базах данных (обзор).
• Запахи в архитектуре, запахи в управлении персоналом
• Поля
• Массивы данных
• Ссылки и значения
• Кодовые поля
• Упрощение условных выражений
• Упрощение вызова методов
• Работа с обобщениями
• Композиция методов
• Практика: рефакторинг кода игры «Монополия»
• Объединение условных выражений
• Объединение дубликатов фрагментов условных выражений
• Удаление контрольного флага
• Удаление вложенных условий
• Использование полиморфизма вместо условий
• Null-объекты
• Проверки (Assertions)
• Практика: рефакторинг программы «Крестики-нолики»
• Добавление/удаление параметров + параметризация
• Разделение запроса и подсчетов
• Замена параметров на выделенные методы
• Использование нового объекта в качестве параметра
• Замена параметра методом
• Удаление метода настройки
• Замена кодов ошибки на исключения
• Замена исключений на проверки
• Поднятие полей/методов/конструкторов
• Опускание полей/методов
• Принцип Лисков
• Выделение под/надклассов и интерфейсов
• Сокращение иерархий
• Замена наследования делегированием и обратно
• Практика: рефакторинг программы «шахматные фигуры»
• Выделение метода
• Встраивание метода
• Встраивание временных переменных
• Замена временных переменных запросом
• Введение объясняющих переменных
• Разделение временных переменных
• Замена полей класса на параметры
• Замена метода на объект
• Замена алгоритма
• Именование
• Чрезмерная сложность
• Дублирование
• Условная логика
• Связность
• Закон Деметра
• Передвижение методов/полей
• Выделение класса
• Встраивание класса
• Сокрытие делегатов
• Удаление посредника
• Методы расширения
• Практика: Улучшение кода программы «Видеопрокат»
• Наследование
• Ответственность
• Приспосабливающиеся изменения
• Библиотечные классы
01Рефакторинг – введение
• Определение рефакторинга
• Основы разработки через тестирование
• Практика: Разработка модуля по методологии «Разработка через тестирование»
02Запахи кода. Общая информация
• Определение запаха кода.
• Принципы хорошего дизайна.
• Запахи кода в тестах, запахи в базах данных (обзор).
• Запахи в архитектуре, запахи в управлении персоналом
03Организация данных
• Поля
• Массивы данных
• Ссылки и значения
• Кодовые поля
• Упрощение условных выражений
• Упрощение вызова методов
• Работа с обобщениями
• Композиция методов
• Практика: рефакторинг кода игры «Монополия»
04Декомпозиция условий
• Объединение условных выражений
• Объединение дубликатов фрагментов условных выражений
• Удаление контрольного флага
• Удаление вложенных условий
• Использование полиморфизма вместо условий
• Null-объекты
• Проверки (Assertions)
• Практика: рефакторинг программы «Крестики-нолики»
05Переименование метода/поля
• Добавление/удаление параметров + параметризация
• Разделение запроса и подсчетов
• Замена параметров на выделенные методы
• Использование нового объекта в качестве параметра
• Замена параметра методом
• Удаление метода настройки
• Замена кодов ошибки на исключения
• Замена исключений на проверки
06Принцип открытости-закрытости
• Поднятие полей/методов/конструкторов
• Опускание полей/методов
• Принцип Лисков
• Выделение под/надклассов и интерфейсов
• Сокращение иерархий
• Замена наследования делегированием и обратно
• Практика: рефакторинг программы «шахматные фигуры»
07Методы
• Выделение метода
• Встраивание метода
• Встраивание временных переменных
• Замена временных переменных запросом
• Введение объясняющих переменных
• Разделение временных переменных
• Замена полей класса на параметры
• Замена метода на объект
• Замена алгоритма
08Легко обнаруживаемые проблемы
• Именование
• Чрезмерная сложность
• Дублирование
• Условная логика
09Принцип единой ответственности
• Связность
• Закон Деметра
• Передвижение методов/полей
• Выделение класса
• Встраивание класса
• Сокрытие делегатов
• Удаление посредника
• Методы расширения
• Практика: Улучшение кода программы «Видеопрокат»
10Данные
• Наследование
• Ответственность
• Приспосабливающиеся изменения
• Библиотечные классы
Удостоверение о прохождении
Отзывы о курсе
Оставьте отзыв
Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.
Оставьте заявку
Консультант ответит на вопросы о курсе «Рефакторинг кода. Редакция для С++» и поможет разобраться в деталях обучения.
Нажимая кнопку, вы даете согласие на обработку персональных данных
Информация обновлена 24 августа 2026 г.

IBS Training Center 
















