О чём курс

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

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

Цели

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

Целевая аудитория

  • Разработчики;
  • Старшие разработчики.

Предварительная подготовка


Для кого

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

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

Определение и устранение проблем в коде
Применение методов рефакторинга
Использование инструментов для рефакторинга
Тестирование после рефакторинга
Поддержание чистоты кода

Темы курса

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

32 900 ₽

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

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

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

01 Научитесь выявлять проблемные участки в коде, такие как дублирование, сложность и недостаточная читаемость
02 Освоите различные методы и техники рефакторинга, такие как извлечение методов, переименование переменных и классов
03 Научитесь использовать инструменты и среды разработки
04 Освоите методы написания и выполнения тестов для проверки корректности работы кода после рефакторинга
05 Научитесь применять принципы чистого кода и лучшие практики программирования, что поможет вам создавать более читаемые

32 900 ₽

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

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

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

32 900 ₽

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

Юр. лицо — 32 900 ₽
Физ. лицо — 29 610 ₽
Открытая дата
Продолжая, я подтверждаю, что ознакомлен с Условиями использования и Порядком обработки персональных данных

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

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

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

DEV-001_JVA
24 часа

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

Шаблоны проектирования представляют собой совокупность некоего опыта, пригодную для повторного использования. Паттерны находят применение во всех областях деятельности, поскольку дают возможность использовать сработавшие ранее решения. Знание паттернов проектирования позволяет не только быстрее реализовать ваши решения и получать качественный исходный код, но и эффективнее общаться с коллегами, которые уже освоили данную технологию. В курсе рассматривается 23 основных паттерна, которые описаны в книге “Design Patterns: Elements of Reusable Object-Oriented Software" («Шаблоны проектирования: элементы повторно используемого объектно-ориентированного программного обеспечения»), написанной четырьмя авторами («бандой четырех» - Gang of Four, GoF) – Erich Gamma, Richard Helm, Ralph Johnson и John Vlissides.

от Middle

32 900 ₽

JVA-017
30 часов

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

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

от Middle

39 900 ₽

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

Наши клиенты

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

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

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