Рефакторинг кода на Java
Как устроено обучение
Подробнее
Что нужно для старта
- Прохождение курса DEV-001_JVA "Шаблоны проектирования GoF. Редакция для Java".
- Знание принципов объектно-ориентированного программирования.
- Опыт работы с объектно-ориентированными языками от 1 года.
- Знание UML.
Что вы получите
- Выявлять «запахи кода» и находить слабые места в архитектуре
- Применять основные техники рефакторинга (Extract Method, Replace Conditional with Polymorphism и др.)
- Улучшать читаемость и поддерживаемость кода без риска сломать функционал
- Писать тесты для рефакторинга, чтобы избежать регрессий
- Оптимизировать производительность кода без потери качества
Для кого этот курс
- Разработчик
Программа курса
• Что такое рефакторинг;
• Правила и стратегии;
• Рефакторинг и дизайн;
• Создание тестов;
• Явные проблемы;
• Средства рефакторинга;
• Книги о рефакторинге.
• Измеряемые проблемы;
• Имена;
• Ненужная сложность;
• Дублирование;
• Условная логика.
• Данные;
• Наследование;
• Ответственность;
• Реализация изменений;
• Библиотечные классы.
• Извлечение метода;
• Встраивание метода;
• Встраивание временной переменной;
• Замена временной переменной запросом;
• Введение поясняющей переменной;
• Расщепление временной переменной;
• Удаление присваиваний параметрам;
• Замена метода объектом методов;
• Замещение алгоритма.
• Перемещение метода;
• Перемещение поля;
• Извлечение класса;
• Сокрытие делегирования;
• Удаление посредника;
• Внедрение внешнего метода;
• Внедрение локального расширения.
• Инкапсуляция поля;
• Самоинкапсуляция поля;
• Инкапсуляция коллекции;
• Замена записи классом данных;
• Замена значения данных объектом;
• Замена массива объектом;
• Изменение значения на ссылку;
• Изменение ссылки на значение;
• Дублирование видимых данных;
• Изменение двунаправленной связи однонаправленной;
• Изменение однонаправленной связи двунаправленной;
• Замена магического числа символической константой;
• Замена кода типа классом;
• Замена кода типа подклассом;
• Замена кода типа состоянием/стратегией;
• Замена подкласса полями.
• Декомпозиция условного оператора;
• Консолидация условного выражения;
• Консолидация дублирующих условных фрагментов;
• Удаление управляющего флага;
• Замена вложенного условного оператора граничными операторами;
• Замена условного оператора полиморфизмом;
• Введение объекта Null;
• Введение утверждения.
• Переименование метода;
• Добавление параметра;
• Удаление параметра;
• Разделение запроса и модификатора;
• Параметризация метода;
• Замена параметра явными методами;
• Замена параметра методом;
• Введение граничного объекта;
• Удаление метода установки значения;
• Сокрытие метода;
• Замена конструктора фабричным методом;
• Инкапсуляция нисходящего преобразования типа;
• Замена кода ошибки исключением;
• Обертывание проверяемого исключения в непроверяемое;
• Замена исключения проверкой.
• Подъем поля;
• Подъем метода;
• Подъем тела конструктора;
• Спуск поля;
• Выделение подкласса;
• Выделение суперкласса;
• Выделение наследования;
• Свертывание иерархии;
• Формирование шаблона метода;
• Замена наследования делегированием;
• Замена делегирования наследованием.
• Замена анонимных классов лямбда-выражениями;
• Использование ссылок методов;
• Использование лямбда-выражений для реализации шаблона «команда»;
• Использование лямбда-выражений для реализации шаблона «стратегия»;
• Обработка коллекций с помощью лямбда-выражений;
• Использование потоков для отображения/фильтрации/снижения числа операций.
• Основы тестирования;
• Виды тестирования ПО;
• Разработка на основе тестирования;
• Рефакторинг с помощью тестов;
• Книги о тестировании на Java.
01Введение
• Что такое рефакторинг;
• Правила и стратегии;
• Рефакторинг и дизайн;
• Создание тестов;
• Явные проблемы;
• Средства рефакторинга;
• Книги о рефакторинге.
02Явные проблемы внутри классов
• Измеряемые проблемы;
• Имена;
• Ненужная сложность;
• Дублирование;
• Условная логика.
03Явные проблемы между классами
• Данные;
• Наследование;
• Ответственность;
• Реализация изменений;
• Библиотечные классы.
04Методы компоновки
• Извлечение метода;
• Встраивание метода;
• Встраивание временной переменной;
• Замена временной переменной запросом;
• Введение поясняющей переменной;
• Расщепление временной переменной;
• Удаление присваиваний параметрам;
• Замена метода объектом методов;
• Замещение алгоритма.
05Перемещение функций между объектами
• Перемещение метода;
• Перемещение поля;
• Извлечение класса;
• Сокрытие делегирования;
• Удаление посредника;
• Внедрение внешнего метода;
• Внедрение локального расширения.
06Организация данных
• Инкапсуляция поля;
• Самоинкапсуляция поля;
• Инкапсуляция коллекции;
• Замена записи классом данных;
• Замена значения данных объектом;
• Замена массива объектом;
• Изменение значения на ссылку;
• Изменение ссылки на значение;
• Дублирование видимых данных;
• Изменение двунаправленной связи однонаправленной;
• Изменение однонаправленной связи двунаправленной;
• Замена магического числа символической константой;
• Замена кода типа классом;
• Замена кода типа подклассом;
• Замена кода типа состоянием/стратегией;
• Замена подкласса полями.
07Упрощение условных выражений
• Декомпозиция условного оператора;
• Консолидация условного выражения;
• Консолидация дублирующих условных фрагментов;
• Удаление управляющего флага;
• Замена вложенного условного оператора граничными операторами;
• Замена условного оператора полиморфизмом;
• Введение объекта Null;
• Введение утверждения.
08Упрощение вызовов метода
• Переименование метода;
• Добавление параметра;
• Удаление параметра;
• Разделение запроса и модификатора;
• Параметризация метода;
• Замена параметра явными методами;
• Замена параметра методом;
• Введение граничного объекта;
• Удаление метода установки значения;
• Сокрытие метода;
• Замена конструктора фабричным методом;
• Инкапсуляция нисходящего преобразования типа;
• Замена кода ошибки исключением;
• Обертывание проверяемого исключения в непроверяемое;
• Замена исключения проверкой.
09Работа с обобщениями
• Подъем поля;
• Подъем метода;
• Подъем тела конструктора;
• Спуск поля;
• Выделение подкласса;
• Выделение суперкласса;
• Выделение наследования;
• Свертывание иерархии;
• Формирование шаблона метода;
• Замена наследования делегированием;
• Замена делегирования наследованием.
10Рефакторинг в Java 8
• Замена анонимных классов лямбда-выражениями;
• Использование ссылок методов;
• Использование лямбда-выражений для реализации шаблона «команда»;
• Использование лямбда-выражений для реализации шаблона «стратегия»;
• Обработка коллекций с помощью лямбда-выражений;
• Использование потоков для отображения/фильтрации/снижения числа операций.
11Рефакторинг и тестирование
• Основы тестирования;
• Виды тестирования ПО;
• Разработка на основе тестирования;
• Рефакторинг с помощью тестов;
• Книги о тестировании на Java.
Удостоверение о прохождении
Отзывы о курсе
Оставьте отзыв
Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.
Оставьте заявку
Консультант ответит на вопросы о курсе «Рефакторинг кода на Java» и поможет разобраться в деталях обучения.
Нажимая кнопку, вы даете согласие на обработку персональных данных
Информация обновлена 24 августа 2026 г.

IBS Training Center 



![Основы программирования на языке "Java" для школьников. Модуль 2 [c]](/img/course_default/course_defaukt_0.jpg)








