Открыто

Рефакторинг кода на Java [IBS Training Center]

Тема в разделе "Курсы по программированию", создана пользователем Топикстартер, 5 апр 2025.

Основной список: 14 участников

  1. 5 апр 2025
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба

    Складчина: Рефакторинг кода на Java [IBS Training Center]

    1.png

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

    После завершения обучения слушатели смогут:
    • понимать принципы рефакторинга;
    • объяснить необходимость рефакторинга;
    • внедрять фазу рефакторинг в процесс разработки;
    • идентифицировать проблемный код (smells);
    • принимать решение о проведение рефакторинга над проблемным кодом;
    • пошагово выполнять рефакторинг;
    • использовать автоматизированные средства для проведения рефакторинга.
    Целевая аудитория:
    • Разработчики;
    • Старшие разработчики.
    Предварительная подготовка:
    • Прохождение курса DEV-001_JVA "Шаблоны проектирования GoF. Редакция для Java".
    • Знание принципов объектно-ориентированного программирования.
    • Опыт работы с объектно-ориентированными языками от 1 года.
    • Знание UML.
    Улучшаемые навыки:
    • Определение и устранение проблем в коде
    • Применение методов рефакторинга
    • Использование инструментов для рефакторинга
    • Тестирование после рефакторинга
    • Поддержание чистоты кода
    Программа курса

    01. Введение (теория – 2 ч.; практика – 0,5 ч.)
    02. Явные проблемы внутри классов (теория – 1,5 ч.; практика – 1 ч.)
    03. Явные проблемы между классами (теория – 0,5 ч; практика – 1 ч.)
    04. Методы компоновки (теория – 1 ч.; практика – 1 ч.)
    05. Перемещение функций между объектами (теория – 1 ч.; практика – 1 ч.)
    06. Организация данных (теория – 2 ч.; практика – 2 ч.)
    07. Упрощение условных выражений (теория – 1 ч.; практика – 1 ч.)
    08. Упрощение вызовов метода (теория – 1 ч.; практика – 1 ч.)
    09. Работа с обобщениями (теория – 1 ч.; практика – 1 ч.)
    10. Рефакторинг в Java 8 (теория – 0,5 ч.; практика – 1 ч.)
    11. Рефакторинг и тестирование (теория – 1 ч.; практика – 1 ч.)

    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.

    Чему вы научитесь:
    • Научитесь выявлять проблемные участки в коде, такие как дублирование, сложность и недостаточная читаемость
    • Освоите различные методы и техники рефакторинга, такие как извлечение методов, переименование переменных и классов
    • Научитесь использовать инструменты и среды разработки
    • Освоите методы написания и выполнения тестов для проверки корректности работы кода после рефакторинга
    • Научитесь применять принципы чистого кода и лучшие практики программирования, что поможет вам создавать более читаемые
    Цена 29610 руб
    Скрытая ссылка
     
    Последнее редактирование модератором: 8 апр 2025
    1 человеку нравится это.
  2. Последние события

    1. rainwoman
      rainwoman участвует.
      12 июн 2025
    2. Hiiirt
      Hiiirt не участвует.
      4 июн 2025
    3. Hiiirt
      Hiiirt участвует.
      3 июн 2025
    4. sporspb
      sporspb не участвует.
      16 май 2025