Мы используем cookie для стабильной работы сервиса. Подробнее

Рефакторинг кода на Java

4.7
ФорматОнлайн
Длительность24 академ. часов
Объём11 занятий
УровеньСредний
По окончанииУдостоверение о прохождении
Всё для обучения

Как устроено обучение

Практические занятия
О курсе

Подробнее

Пишите чистый и эффективный Java-код, который легко поддерживать! Научитесь выявлять и исправлять «запахи кода», применять лучшие практики рефакторинга и работать с legacy-проектами. Курс даст не только теорию, но и реальные кейсы из опыта топовых разработчиков.
Требования

Что нужно для старта

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

Что вы получите

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

Для кого этот курс

  • Разработчик
Содержание

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

11 занятий
№ТемаЧто внутри
01Введение

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

02Явные проблемы внутри классов

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

03Явные проблемы между классами

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

04Методы компоновки

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

05Перемещение функций между объектами

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

06Организация данных

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

07Упрощение условных выражений

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

08Упрощение вызовов метода

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

09Работа с обобщениями

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

10Рефакторинг в Java 8

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

11Рефакторинг и тестирование

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

01Введение

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

02Явные проблемы внутри классов

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

03Явные проблемы между классами

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

04Методы компоновки

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

05Перемещение функций между объектами

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

06Организация данных

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

07Упрощение условных выражений

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

08Упрощение вызовов метода

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

09Работа с обобщениями

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

10Рефакторинг в Java 8

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

11Рефакторинг и тестирование

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

Документ после выпуска

Удостоверение о прохождении

Организатор

Автор курса

IBS Training CenterIBS Training Center
Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, архитектуре ПО, ручному и автоматизированному тестированию ПО, Big Data и машинному обучению, управлению проектами и Agile. Действует скидка 10% на обучение физических лиц.
Подробнее об авторе
Мнения учеников

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

Оставьте отзыв

Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.

Напишите ваш коментарий, не менее 30 символов

Нажимая кнопку, вы даете согласие на обработку персональных данных

Оставьте заявку

Консультант ответит на вопросы о курсе «Рефакторинг кода на Java» и поможет разобраться в деталях обучения.

Комментарий ...

Нажимая кнопку, вы даете согласие на обработку персональных данных

Направления:Java

Информация обновлена 12 октября 2026 г.

Продолжить выбор

Похожие курсы

Взаимодействие с СУБД из Java-приложений посредством технологии JDBC v3
−10%16 академ. часов
Взаимодействие с СУБД из Java-приложений посредством технологии JDBC v3

Изучите JDBC API для создания мощных Java-приложений, взаимодействующих с базами данных. Слушатели научатся применять JDBC API для доступа к реляционным базам данных, выполнения S…

Онлайн5 занятийСредний
Практические занятия
27 900 ₽−10%
25 110 ₽
Java Persistence с использованием Hibernate
−10%16 ноября
Java Persistence с использованием Hibernate

Освойте JPA и Hibernate для эффективной работы с данными в Java‑приложениях. В курсе рассматриваются использование JPA и Hibernate для хранения и управления данными в реляционных…

Онлайн3 занятийСредний
Практические занятия
40 400 ₽−10%
36 360 ₽
Введение в Apache Maven с усилением ИИ
−10%6 академ. часов
Введение в Apache Maven с усилением ИИ

Мастерство сборки Java-проектов с Apache Maven. Освойте современные методы сборки и управления зависимостями Java-проектов с помощью Apache Maven. Научитесь эффективно использоват…

Онлайн12 занятийНачальный
Практические занятия
10 900 ₽−10%
9 810 ₽
Основы Java
1 час
Основы Java

Здесь вы познакомитесь с основами синтаксиса, типами данных, операторами и конструкциями языка.

Онлайн2 занятийНачальный
Домашние задания
495 ₽
Работа с SOAP веб-сервисами на Java
−10%24 академ. часов
Работа с SOAP веб-сервисами на Java

В рамках курса слушатели получат практические навыки разработки XML based web services на базе платформы Java SE 7, узнают об основных концепциях технологии XML based web services…

Онлайн6 занятийСредний
Практические занятия
34 200 ₽−10%
30 780 ₽
(Архив) ДО Профессия Java-разработчик  2024
−50%8 месяцев
(Архив) ДО Профессия Java-разработчик 2024

Онлайн курс «Java-разработчик» от GeekBrains: получи новую профессию дистанционно! ✅ Курс ориентирован на уровень: Junior. ⌚ Длительность обучения: 8 месяцев. ✅ Помощь в трудоустр…

Онлайн
Помощь с трудоустройством
236 509 ₽−50%
118 255 ₽
Начать без затрат

Бесплатные курсы

Computer Science. Java
Бесплатно25 академических часов
Computer Science. Java

Для прохождения всего курса никаких предварительных знаний не требуется кроме школьного курса базовой математики и уверенной работы с персональным компьютером.Преподаватель: Денис…

Онлайн1 занятий
Видеоуроки
Бесплатно
Программирование на Java. Уровень 3. Разработка клиент - серверных приложений
Бесплатно
Программирование на Java. Уровень 3. Разработка клиент - серверных приложений

Курс «Программирование на Java. Уровень 3. Разработка клиент-серверных приложений»: онлайн и очное офлайн обучение в Москве в Бауманском учебном центре «Специалист». Стоимость обу…

Онлайн
Бесплатно
Строки и регулярные выражения в Java
Бесплатно4 академических часов
Строки и регулярные выражения в Java

Институт прикладной автоматизации и программирования (ИПАП) приглашает на семинар: «Строки и регулярные выражения в Java»Аудитория:Новички, планирующие изучение Java или похожих о…

Онлайн1 занятий
Видеоуроки
Бесплатно
Основы ООП в Java. Объекты, классы, интерфейсы в примерах
Бесплатно4 академических часов
Основы ООП в Java. Объекты, классы, интерфейсы в примерах

Продукты и технологии: Java SE, IntelliJ IDEAАудитория:Новички, планирующие изучение Java или похожих объектно-ориентированных языков (C#, Scala, Python, PHP)Программисты с опытом…

Онлайн1 занятий
Видеоуроки
Бесплатно
CloudCoder Exercises
Бесплатно
CloudCoder Exercises

Курс больше не поддерживается The course consists of a few hundred of programming assignments for Python, Java and C++. Problem set based on CloudCoder exercise repository (http…

Онлайн3 занятий
Бесплатно
Java. Базовый курс
Бесплатно2-4 часа в неделю
Java. Базовый курс

Данный курс предназначен для тех, кто только начинает изучать Java. Мы начнем с самых азов: компиляция и запуск Java-программ, синтаксис языка, система типов, основы объектно-орие…

Онлайн6 занятий
Бесплатно