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

Рефакторинг кода на Java

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

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

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

Подробнее

Пишите чистый и эффективный Java-код, который легко поддерживать! Научитесь выявлять и исправлять «запахи кода», применять лучшие практики рефакторинга и работать с legacy-проектами. Курс даст не только теорию, но и реальные кейсы из опыта топовых разработчиков.
Требования

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

  • Прохождение курса DEV-001_JVA "Шаблоны проектирования GoF. Редакция для Java".
  • Знание принципов объектно-ориентированного программирования.
  • Опыт работы с объектно-ориентированными языками от 1 года.
  • Знание UML.
Результат

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

  • Выявлять «запахи кода» и находить слабые места в архитектуре
  • Применять основные техники рефакторинга (Extract Method, Replace Conditional with Polymorphism и др.)
  • Улучшать читаемость и поддерживаемость кода без риска сломать функционал
  • Писать тесты для рефакторинга, чтобы избежать регрессий
  • Оптимизировать производительность кода без потери качества
Аудитория

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

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

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

11 занятий
ТемаЧто внутри
01Введение

• Что такое рефакторинг;
• Правила и стратегии;
• Рефакторинг и дизайн;
• Создание тестов;
• Явные проблемы;
• Средства рефакторинга;
• Книги о рефакторинге.

02Явные проблемы внутри классов

• Измеряемые проблемы;
• Имена;
• Ненужная сложность;
• Дублирование;
• Условная логика.

03Явные проблемы между классами

• Данные;
• Наследование;
• Ответственность;
• Реализация изменений;
• Библиотечные классы.

04Методы компоновки

• Извлечение метода;
• Встраивание метода;
• Встраивание временной переменной;
• Замена временной переменной запросом;
• Введение поясняющей переменной;
• Расщепление временной переменной;
• Удаление присваиваний параметрам;
• Замена метода объектом методов;
• Замещение алгоритма.

05Перемещение функций между объектами

• Перемещение метода;
• Перемещение поля;
• Извлечение класса;
• Сокрытие делегирования;
• Удаление посредника;
• Внедрение внешнего метода;
• Внедрение локального расширения.

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

• Инкапсуляция поля;
• Самоинкапсуляция поля;
• Инкапсуляция коллекции;
• Замена записи классом данных;
• Замена значения данных объектом;
• Замена массива объектом;
• Изменение значения на ссылку;
• Изменение ссылки на значение;
• Дублирование видимых данных;
• Изменение двунаправленной связи однонаправленной;
• Изменение однонаправленной связи двунаправленной;
• Замена магического числа символической константой;
• Замена кода типа классом;
• Замена кода типа подклассом;
• Замена кода типа состоянием/стратегией;
• Замена подкласса полями.

07Упрощение условных выражений

• Декомпозиция условного оператора;
• Консолидация условного выражения;
• Консолидация дублирующих условных фрагментов;
• Удаление управляющего флага;
• Замена вложенного условного оператора граничными операторами;
• Замена условного оператора полиморфизмом;
• Введение объекта Null;
• Введение утверждения.

08Упрощение вызовов метода

• Переименование метода;
• Добавление параметра;
• Удаление параметра;
• Разделение запроса и модификатора;
• Параметризация метода;
• Замена параметра явными методами;
• Замена параметра методом;
• Введение граничного объекта;
• Удаление метода установки значения;
• Сокрытие метода;
• Замена конструктора фабричным методом;
• Инкапсуляция нисходящего преобразования типа;
• Замена кода ошибки исключением;
• Обертывание проверяемого исключения в непроверяемое;
• Замена исключения проверкой.

09Работа с обобщениями

• Подъем поля;
• Подъем метода;
• Подъем тела конструктора;
• Спуск поля;
• Выделение подкласса;
• Выделение суперкласса;
• Выделение наследования;
• Свертывание иерархии;
• Формирование шаблона метода;
• Замена наследования делегированием;
• Замена делегирования наследованием.

10Рефакторинг в Java 8

• Замена анонимных классов лямбда-выражениями;
• Использование ссылок методов;
• Использование лямбда-выражений для реализации шаблона «команда»;
• Использование лямбда-выражений для реализации шаблона «стратегия»;
• Обработка коллекций с помощью лямбда-выражений;
• Использование потоков для отображения/фильтрации/снижения числа операций.

11Рефакторинг и тестирование

• Основы тестирования;
• Виды тестирования ПО;
• Разработка на основе тестирования;
• Рефакторинг с помощью тестов;
• Книги о тестировании на Java.

01Введение

• Что такое рефакторинг;
• Правила и стратегии;
• Рефакторинг и дизайн;
• Создание тестов;
• Явные проблемы;
• Средства рефакторинга;
• Книги о рефакторинге.

02Явные проблемы внутри классов

• Измеряемые проблемы;
• Имена;
• Ненужная сложность;
• Дублирование;
• Условная логика.

03Явные проблемы между классами

• Данные;
• Наследование;
• Ответственность;
• Реализация изменений;
• Библиотечные классы.

04Методы компоновки

• Извлечение метода;
• Встраивание метода;
• Встраивание временной переменной;
• Замена временной переменной запросом;
• Введение поясняющей переменной;
• Расщепление временной переменной;
• Удаление присваиваний параметрам;
• Замена метода объектом методов;
• Замещение алгоритма.

05Перемещение функций между объектами

• Перемещение метода;
• Перемещение поля;
• Извлечение класса;
• Сокрытие делегирования;
• Удаление посредника;
• Внедрение внешнего метода;
• Внедрение локального расширения.

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

• Инкапсуляция поля;
• Самоинкапсуляция поля;
• Инкапсуляция коллекции;
• Замена записи классом данных;
• Замена значения данных объектом;
• Замена массива объектом;
• Изменение значения на ссылку;
• Изменение ссылки на значение;
• Дублирование видимых данных;
• Изменение двунаправленной связи однонаправленной;
• Изменение однонаправленной связи двунаправленной;
• Замена магического числа символической константой;
• Замена кода типа классом;
• Замена кода типа подклассом;
• Замена кода типа состоянием/стратегией;
• Замена подкласса полями.

07Упрощение условных выражений

• Декомпозиция условного оператора;
• Консолидация условного выражения;
• Консолидация дублирующих условных фрагментов;
• Удаление управляющего флага;
• Замена вложенного условного оператора граничными операторами;
• Замена условного оператора полиморфизмом;
• Введение объекта Null;
• Введение утверждения.

08Упрощение вызовов метода

• Переименование метода;
• Добавление параметра;
• Удаление параметра;
• Разделение запроса и модификатора;
• Параметризация метода;
• Замена параметра явными методами;
• Замена параметра методом;
• Введение граничного объекта;
• Удаление метода установки значения;
• Сокрытие метода;
• Замена конструктора фабричным методом;
• Инкапсуляция нисходящего преобразования типа;
• Замена кода ошибки исключением;
• Обертывание проверяемого исключения в непроверяемое;
• Замена исключения проверкой.

09Работа с обобщениями

• Подъем поля;
• Подъем метода;
• Подъем тела конструктора;
• Спуск поля;
• Выделение подкласса;
• Выделение суперкласса;
• Выделение наследования;
• Свертывание иерархии;
• Формирование шаблона метода;
• Замена наследования делегированием;
• Замена делегирования наследованием.

10Рефакторинг в Java 8

• Замена анонимных классов лямбда-выражениями;
• Использование ссылок методов;
• Использование лямбда-выражений для реализации шаблона «команда»;
• Использование лямбда-выражений для реализации шаблона «стратегия»;
• Обработка коллекций с помощью лямбда-выражений;
• Использование потоков для отображения/фильтрации/снижения числа операций.

11Рефакторинг и тестирование

• Основы тестирования;
• Виды тестирования ПО;
• Разработка на основе тестирования;
• Рефакторинг с помощью тестов;
• Книги о тестировании на Java.

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

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

Организатор

Автор курса

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

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

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

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

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

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

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

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

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

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

Направления:Java

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

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

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

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

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