О чём курс

В курсе рассматривается понятие рефакторинга, как способ предотвращения распада программы. Рассматриваются различные признаки плохого кода (smells), требующего рефакторинга, описывает, какой именно рефакторинг наилучшим образом подходит для той или иной ситуации, и описывает его механику, подробно разбирая ее на конкретных примерах из реальных задач.

Во время обучения слушатели изучат основные стратегии рефакторинга Java приложений, а также такие темы как явные проблемы внутри классов, явные проблемы между классами, методы компоновки, перемещение функций между объектами, организация данных, упрощение условных выражений, упрощение вызовов методов, работа с обобщениями, рефакторинг в Java 8, рефакторинг и тестирование.

Цели

После завершения обучения слушатели смогут:
  • понимать принципы рефакторинга;
  • объяснить необходимость рефакторинга;
  • внедрять фазу рефакторинг в процесс разработки;
  • идентифицировать проблемный код (smells);
  • принимать решение о проведение рефакторинга над проблемным кодом;
  • пошагово выполнять рефакторинг;
  • использовать автоматизированные средства для проведения рефакторинга.
  • Целевая аудитория

  • Разработчики;
  • Старшие разработчики.
  • Предварительная подготовка

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

    Разработчик Разработчик

    Улучшаемые навыки

    рефакторинг
    тестирование
    Java
    дизайн
    шаблоны проектирования
    CI/CD
    автоматизация

    Инструменты

    VS Code VS Code
    IntelliJ IDEA IntelliJ IDEA
    NetBeans NetBeans
    Eclipse Eclipse

    Расписание курсов

    27.10.2025 - 01.11.2025

    10:00-14:00
    Дата и время:
    27.10.2025-01.11.2025
    10:00-14:00

    Middle 24 часа

    32 900 ₽

    29 610 ₽ — для физ. лиц

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

    01 Введение
  • Что такое рефакторинг;
  • Правила и стратегии;
  • Рефакторинг и дизайн;
  • Создание тестов;
  • Явные проблемы;
  • Средства рефакторинга;
  • Книги о рефакторинге.
  • 02 Явные проблемы внутри классов
  • Измеряемые проблемы;
  • Имена;
  • Ненужная сложность;
  • Дублирование;
  • Условная логика.
  • 03 Явные проблемы между классами
  • Данные;
  • Наследование;
  • Ответственность;
  • Реализация изменений;
  • Библиотечные классы.
  • 04 Методы компоновки
  • Извлечение метода;
  • Встраивание метода;
  • Встраивание временной переменной;
  • Замена временной переменной запросом;
  • Введение поясняющей переменной;
  • Расщепление временной переменной;
  • Удаление присваиваний параметрам;
  • Замена метода объектом методов;
  • Замещение алгоритма.
  • 05 Перемещение функций между объектами
  • Перемещение метода;
  • Перемещение поля;
  • Извлечение класса;
  • Сокрытие делегирования;
  • Удаление посредника;
  • Внедрение внешнего метода;
  • Внедрение локального расширения.
  • 06 Организация данных
  • Инкапсуляция поля;
  • Самоинкапсуляция поля;
  • Инкапсуляция коллекции;
  • Замена записи классом данных;
  • Замена значения данных объектом;
  • Замена массива объектом;
  • Изменение значения на ссылку;
  • Изменение ссылки на значение;
  • Дублирование видимых данных;
  • Изменение двунаправленной связи однонаправленной;
  • Изменение однонаправленной связи двунаправленной;
  • Замена магического числа символической константой;
  • Замена кода типа классом;
  • Замена кода типа подклассом;
  • Замена кода типа состоянием/стратегией;
  • Замена подкласса полями.
  • 07 Упрощение условных выражений
  • Декомпозиция условного оператора;
  • Консолидация условного выражения;
  • Консолидация дублирующих условных фрагментов;
  • Удаление управляющего флага;
  • Замена вложенного условного оператора граничными операторами;
  • Замена условного оператора полиморфизмом;
  • Введение объекта Null;
  • Введение утверждения.
  • 08 Упрощение вызовов метода
  • Переименование метода;
  • Добавление параметра;
  • Удаление параметра;
  • Разделение запроса и модификатора;
  • Параметризация метода;
  • Замена параметра явными методами;
  • Замена параметра методом;
  • Введение граничного объекта;
  • Удаление метода установки значения;
  • Сокрытие метода;
  • Замена конструктора фабричным методом;
  • Инкапсуляция нисходящего преобразования типа;
  • Замена кода ошибки исключением;
  • Обертывание проверяемого исключения в непроверяемое;
  • Замена исключения проверкой.
  • 09 Работа с обобщениями
  • Подъем поля;
  • Подъем метода;
  • Подъем тела конструктора;
  • Спуск поля;
  • Выделение подкласса;
  • Выделение суперкласса;
  • Выделение наследования;
  • Свертывание иерархии;
  • Формирование шаблона метода;
  • Замена наследования делегированием;
  • Замена делегирования наследованием.
  • 10 Рефакторинг в Java 8
  • Замена анонимных классов лямбда-выражениями;
  • Использование ссылок методов;
  • Использование лямбда-выражений для реализации шаблона «команда»;
  • Использование лямбда-выражений для реализации шаблона «стратегия»;
  • Обработка коллекций с помощью лямбда-выражений;
  • Использование потоков для отображения/фильтрации/снижения числа операций.
  • 11 Рефакторинг и тестирование
  • Основы тестирования;
  • Виды тестирования ПО;
  • Разработка на основе тестирования;
  • Рефакторинг с помощью тестов;
  • Книги о тестировании на Java.
  • 12 Итого на курс 24 часа: теория – 12,5 ч (52%), практика – 11,5 ч (48 %)

    32 900 ₽

    29 610 ₽ — для физ. лиц

    Записаться на курс

    Чему вы научитесь

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

    Курс проводят

    Игорь

    Судакевич Игорь

    Эксперт в области разработки ПО (Java).

    Senior

    Курсы и сертификаты

    32 900 ₽

    29 610 ₽ — для физ. лиц

    Записаться на курс

    Записаться на курс

    32 900 ₽

    29 610 ₽ — для физ. лиц

    Юр. лицо — 32 900 ₽
    Физ. лицо — 29 610 ₽
    27.10.2025, Онлайн
    27.10.2025, Онлайн
    Открытая дата

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

    Повысьте квалификацию И получите диплом
    Отзывы учеников
    Участие в тренинге дает отличную возможность систематизировать и расширить свои знания о рефакторинге и его месте в разработке ПО. Особенно хочется отметить стиль работы тренера, ориентированный на создание общей картины без засорения ее отдельными подробностями. В целом, курс разработан очень грамотно и включает в себя различные источники и авторов.
    Тренинг отличается от перовначальных ожиданий, но только в лучшую сторону. Преподаватель не боится отходить от темы курса и компетентно расскрывает другие вопросы - это крайне положительный момент.

    Связанные курсы

    DEV-001_JVA
    24 часа

    Шаблоны проектирования (GoF). Редакция для Java

    Изучите паттерны GoF на Java с практическими примерами и упражнениями. Курс углубляет понимание паттернов проектирования, учит их комбинировать и адаптировать под сложные enterprise-задачи. Вы научитесь не просто "распознавать" паттерны, а осознанно выбирать их для оптимизации архитектуры и командной работы.

    от Middle

    32 900 ₽

    JVA-017
    30 часов

    Эффективность Java

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

    от Middle

    39 900 ₽

    Наши ученики работают в:

    Наши клиенты

    Mail.ru
    Альфа-Банк, банковская группа
    Лаборатория Касперского
    Магнит, розничная сеть
    Спортмастер, сеть спортивных магазинов
    ПСБ
    Сбертех
    Дзен
    IT One
    Ростелеком
    Мегафон
    Nexign
    Ozon
    Декатлон
    X5 Group
    Технониколь
    Росатом
    Газпром
    Нлмк
    ВСК
    Синимекс

    Не нашли, что искали? — Просто напишите, и мы поможем

    Корпоративное обучение Оценка персонала Сертификация О нас Стань тренером Блог
    Пользователь только что записался на курс ""
    Спасибо!
    Форма отправлена успешно.