Мы используем cookie для стабильной работы сервиса. Подробнее

Рефакторинг кода. Редакция для С++

4.5
ФорматОнлайн
Длительность24 академ. часов
Объём10 занятий
УровеньСредний
По окончанииУдостоверение о прохождении
Всё для обучения

Как устроено обучение

Практические занятия
О курсе

Подробнее

Улучшите читабельность и качество вашего кода на C++! Этот курс поможет вам освоить методы рефакторинга, улучшить архитектуру кода и избавиться от запахов кода, чтобы сделать ваш проект более поддерживаемым и эффективным.
Требования

Что нужно для старта

  • Базовые общие знания в области программирования. Базовые знания скриптовых языков. Способность понимать логические потоки кода.
Результат

Что вы получите

  • Выделять проблемные места в программном коде на языке C++
  • Улучшать читабельность исходного кода на языке C++
  • Применять техники рефакторинга для улучшения архитектуры кода
  • Избавляться от запахов кода и улучшать дизайн программ
  • Проводить разработку через тестирование (TDD)
Аудитория

Для кого этот курс

  • Разработчик
Содержание

Программа курса

10 занятий
ТемаЧто внутри
01Рефакторинг – введение

• Определение рефакторинга
• Основы разработки через тестирование
• Практика: Разработка модуля по методологии «Разработка через тестирование»

02Запахи кода. Общая информация

• Определение запаха кода.
• Принципы хорошего дизайна.
• Запахи кода в тестах, запахи в базах данных (обзор).
• Запахи в архитектуре, запахи в управлении персоналом

03Организация данных

• Поля
• Массивы данных
• Ссылки и значения
• Кодовые поля
• Упрощение условных выражений
• Упрощение вызова методов
• Работа с обобщениями
• Композиция методов
• Практика: рефакторинг кода игры «Монополия»

04Декомпозиция условий

• Объединение условных выражений
• Объединение дубликатов фрагментов условных выражений
• Удаление контрольного флага
• Удаление вложенных условий
• Использование полиморфизма вместо условий
• Null-объекты
• Проверки (Assertions)
• Практика: рефакторинг программы «Крестики-нолики»

05Переименование метода/поля

• Добавление/удаление параметров + параметризация
• Разделение запроса и подсчетов
• Замена параметров на выделенные методы
• Использование нового объекта в качестве параметра
• Замена параметра методом
• Удаление метода настройки
• Замена кодов ошибки на исключения
• Замена исключений на проверки

06Принцип открытости-закрытости

• Поднятие полей/методов/конструкторов
• Опускание полей/методов
• Принцип Лисков
• Выделение под/надклассов и интерфейсов
• Сокращение иерархий
• Замена наследования делегированием и обратно
• Практика: рефакторинг программы «шахматные фигуры»

07Методы

• Выделение метода
• Встраивание метода
• Встраивание временных переменных
• Замена временных переменных запросом
• Введение объясняющих переменных
• Разделение временных переменных
• Замена полей класса на параметры
• Замена метода на объект
• Замена алгоритма

08Легко обнаруживаемые проблемы

• Именование
• Чрезмерная сложность
• Дублирование
• Условная логика

09Принцип единой ответственности

• Связность
• Закон Деметра
• Передвижение методов/полей
• Выделение класса
• Встраивание класса
• Сокрытие делегатов
• Удаление посредника
• Методы расширения
• Практика: Улучшение кода программы «Видеопрокат»

10Данные

• Наследование
• Ответственность
• Приспосабливающиеся изменения
• Библиотечные классы

01Рефакторинг – введение

• Определение рефакторинга
• Основы разработки через тестирование
• Практика: Разработка модуля по методологии «Разработка через тестирование»

02Запахи кода. Общая информация

• Определение запаха кода.
• Принципы хорошего дизайна.
• Запахи кода в тестах, запахи в базах данных (обзор).
• Запахи в архитектуре, запахи в управлении персоналом

03Организация данных

• Поля
• Массивы данных
• Ссылки и значения
• Кодовые поля
• Упрощение условных выражений
• Упрощение вызова методов
• Работа с обобщениями
• Композиция методов
• Практика: рефакторинг кода игры «Монополия»

04Декомпозиция условий

• Объединение условных выражений
• Объединение дубликатов фрагментов условных выражений
• Удаление контрольного флага
• Удаление вложенных условий
• Использование полиморфизма вместо условий
• Null-объекты
• Проверки (Assertions)
• Практика: рефакторинг программы «Крестики-нолики»

05Переименование метода/поля

• Добавление/удаление параметров + параметризация
• Разделение запроса и подсчетов
• Замена параметров на выделенные методы
• Использование нового объекта в качестве параметра
• Замена параметра методом
• Удаление метода настройки
• Замена кодов ошибки на исключения
• Замена исключений на проверки

06Принцип открытости-закрытости

• Поднятие полей/методов/конструкторов
• Опускание полей/методов
• Принцип Лисков
• Выделение под/надклассов и интерфейсов
• Сокращение иерархий
• Замена наследования делегированием и обратно
• Практика: рефакторинг программы «шахматные фигуры»

07Методы

• Выделение метода
• Встраивание метода
• Встраивание временных переменных
• Замена временных переменных запросом
• Введение объясняющих переменных
• Разделение временных переменных
• Замена полей класса на параметры
• Замена метода на объект
• Замена алгоритма

08Легко обнаруживаемые проблемы

• Именование
• Чрезмерная сложность
• Дублирование
• Условная логика

09Принцип единой ответственности

• Связность
• Закон Деметра
• Передвижение методов/полей
• Выделение класса
• Встраивание класса
• Сокрытие делегатов
• Удаление посредника
• Методы расширения
• Практика: Улучшение кода программы «Видеопрокат»

10Данные

• Наследование
• Ответственность
• Приспосабливающиеся изменения
• Библиотечные классы

Документ после выпуска

Удостоверение о прохождении

Организатор

Автор курса

IBS Training CenterIBS Training Center
Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, архитектуре ПО, ручному и автоматизированному тестированию ПО, Big Data и машинному обучению, управлению проектами и Agile. Действует скидка 10% на обучение физических лиц.
Подробнее об авторе
Мнения учеников

Отзывы о курсе

Оставьте отзыв

Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.

Напишите ваш коментарий, не менее 30 символов

Нажимая кнопку, вы даете согласие на обработку персональных данных

Оставьте заявку

Консультант ответит на вопросы о курсе «Рефакторинг кода. Редакция для С++» и поможет разобраться в деталях обучения.

Комментарий ...

Нажимая кнопку, вы даете согласие на обработку персональных данных

Информация обновлена 24 августа 2026 г.

Продолжить выбор

Похожие курсы

Начать без затрат

Бесплатные курсы