Мы используем 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 символов

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

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

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

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

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

Информация обновлена 12 октября 2026 г.

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

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

PRO C#. WPF
1-3 часа каждый день
PRO C#. WPF

Вот приложение, которое мы будем делать на курсе👇 Если вы уже знаете основы C# и понимаете ООП, но не понимаете, как из этого перейти к реальной разработке — этот курс закрывает и…

Онлайн23 занятий
68 900 ₽
Библиотека Qt (С++ ). Уровень 1. Основы программирования
40 ак. ч. + 40 ак. ч. самостоятельно
Библиотека Qt (С++ ). Уровень 1. Основы программирования

Обучение проходит на QT 6 Qt – кроссплатформенная среда для разработки пользовательского интерфейса на языке C++, а также на других объектно-ориентированных языках. Qt Creator – и…

Онлайн10 занятий
50 350 ₽
C++ для разработки игр
13 октября
C++ для разработки игр

Освой С++ на базовом уровне, создай свою первую игру уже через 2 месяца обучения, в дальнейшем сможешь применить эти знания для работы в Unreal Engine.

Онлайн4 занятий
Домашние заданияВидеоуроки+2
90 300 ₽Рассрочка на 12 мес.
C++ для робототехников
−45%1 месяц
C++ для робототехников

Вы научитесь писать программы для роботов на С++. Всю теорию закрепите на практике – начнёте с простых задач, а в конце разработаете приложение для управления шагающим роботом, ко…

Онлайн
55 080 ₽−45%
30 294 ₽от 5 049 ₽/мес на 6 мес.
Основы разработки на C++: белый пояс
Основы разработки на C++: белый пояс

Этот курс посвящён знакомству с языком программирования С++. Вы научитесь использовать его основные конструкции, создавать свои типы данных, разбивать программу на классы и функци…

Онлайн5 занятий
20 000 ₽
Начать без затрат

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

ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С++.  СТРУКТУРЫ ДАННЫХ
Бесплатно
ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С++. СТРУКТУРЫ ДАННЫХ

Курс разработан для студентов Санкт-Петербургского Государственного Электротехнического Университета "ЛЭТИ", кафедры ИС. Является продолжением курса "Основы алгоритмизации и прогр…

Онлайн8 занятий
Бесплатно
Введение в программирование (C++)
Бесплатно4-5 часов на урок, начиная с третьего урока
Введение в программирование (C++)

Программа курса на базовом уровне освещает практические основы программирования. В ходе обучения предстоит решить множество небольших задач, охватывающих основные базовые конструк…

Онлайн1 занятий
Бесплатно
Микроконтроллеры семейства AVR
Бесплатно16 часов
Микроконтроллеры семейства AVR

В 16-ти лекциях курса на примере одного из наиболее применимых микроконтроллеров семейства –ATmega16, подробно разбирается работа центрального процессорного устройства и всех его…

Онлайн7 занятий
Бесплатно
Программирование на языке C++ (продолжение). МНМЦ СПбГУ
Бесплатно7 часа в неделю
Программирование на языке C++ (продолжение). МНМЦ СПбГУ

Как и первая часть этот онлайн-курс основан на материалах курсов, которые в разное время читались в Академическом университете и Computer Science центре. При этом в онлайн-курсе к…

Онлайн5 занятий
Бесплатно
ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С++
Бесплатно
ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С++

Курс разработан для студентов Санкт-Петербургского Государственного Электротехнического Университета "ЛЭТИ", кафедры ИС. Курс содержит теорию, необходимую для выполнения практичес…

Онлайн11 занятий
Бесплатно