Курс: Рефакторинг кода на Java

Курс: Рефакторинг кода на Java

Курс: Рефакторинг кода на Java


Продолжительность курса: 24 ак. ч.

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

Аудитория:
• Разработчики;
• Старшие разработчики.

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

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

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

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

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

Модуль 5. Перемещение функций между объектами
• Перемещение метода;
• Перемещение поля;
• Извлечение класса;
• Сокрытие делегирования;
• Удаление посредника;
• Внедрение внешнего метода;
• Внедрение локального расширения.

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

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

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

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

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

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

Окончательная цена указывается в договоре на обучение.

Характеристики курса

  • Начало: Ведется набор
  • Вендор: Java
  • Код курса: JV-30
  • Город: Екатеринбург, Пермь, Москва,
  • Направление: Курсы для IT-специалистов
  • Академических часов: 24
  • Количество мест: 8
  • Очно: 52900 ₽
  • Дистанционно: 52900 ₽
Записаться на курс

Курсы повышения квалификации
и профессиональной переподготовки


График работы:
Мы отвечаем на звонки и письма в будние дни с 7:00 до 16:00 по Мск

8 800 (600)-66-16

Владелец сайта:
АНО ДПО «Учебный центр «ШИФТ»
ИНН 5904355180
ОГРН 1175958039586
Юридический адрес: 614010, г. Пермь, ул. Клары Цеткин, д. 14, офис 32.
E-mail: info@eshift.ru