Учебный центр IBS

DEV-006_JVA Рефакторинг кода на Java

Для кого: Бэкенд разработчикМидл Мидл
Начало: По факту набора потока
Длительность: 1 неделя
Улучшаемые навыки:
Java
СертификатОнлайн

Описание курса

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

Модуль 1

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

Модуль 2

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

Модуль 3

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

Модуль 4

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

Модуль 5

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

Модуль 6

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

Модуль 7

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

Модуль 8

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

Модуль 9

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

Модуль 10

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

Модуль 11

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

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

Отзывов пока нет
Будьте первым, напишите отзыв и поставьте оценку этому курсу.

Еще курсы