Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемimprove-it.org
1 Программная иженерия Андрей Дмитриев ©
2 Автоматизация рефакторинга
3 Программа Возможности текстового редактора. Автоматическая вставка. Создание методов (implement и override). Рефакторинги.
4 Настройки текстового редактора Среда разработки позволяет изменять настройки текстового редактора: Добавление закрывающего символа. Разбиение строк. Отображение номеров строк. Дополнение кода. Горячие клавиши. Макросы. Форматирование кода. Выбор цветовой схемы подсветки кода. И т.д.
5 Окно настроек
6 Автоматическая вставка Дополнение имен классов, методов и полей. Добавление закрывающего символа. Вставка шаблонов кода. Разбиение длинных строк. Добавление необходимых import-ов и удаление неиспользуемых.
7 Создание методов Среда разработки предоставляет возможность переопределить пустыми телами некоторые методы при: реализации интерфейсов, наследовании от другого класса.
8 Рефакторинги Простые Переименование. Безопасное удаление кода. Изменение сигнатуры и уровня доступа. Инкапсуляция поля. Использование супертипа. Перемещения Перемещение класса. Перемещение метода или поля. Выделение метода. Выделение интерфейса. Выделение суперкласса. Вынесение внутреннего класса. Преобразование анонимного класса во внутренний.
9 Переименование При переименовании среда автоматически заменяет старое имя на новое везде, где это необходимо. Переименовывать таким образом можно: Классы и интерфейсы, Локальные переменные, Методы, Поля.
10 Безопасное удаление кода Безопасное удаление кода предполагает проверку того, что данный код нигде больше не используется. Безопасное удаление может быть применено к: Классам и интерфейсам, Методам, Полям, Локальным переменным.
11 Безопасное удаление кода (пример)
12 Изменение сигнатуры и уровня доступа Описание метода может быть изменено: Добавлением параметра, Удалением неиспользуемых параметров, Изменением порядка параметров, Изменением уровня доступа к методу.
13 Инкапсуляция поля Один из паттернов проектирования – организация доступа к данным исключительно через методы. При необходимости использования такого паттерна среда разработки может : > Создать методы для доступа к указанному полю, > Изменить модификатор доступа к полю, > Заменить все обращения к полю на вызов метода во всем коде.
14 Перемещение класса Класс может быть перемещен в другой пакет с соответствующим изменением всего зависимого кода.
15 Перемещение метода или поля Данный рефакторинг важен для изменения структуры наследования в проекте. Член класса может быть перемещен: В другой класс или интерфейс с соответствующим изменением всего зависимого кода. В том числе: В суперкласс или суперинтерфейс, В подкласс или подинтерфейс, В подкласс с добавлением абстрактного описания в данный класс. Метод может быть оставлен на прежнем месте и его абстрактное описание может быть добавлено в суперкласс.
16 Перемещение метода или поля: пример public class Phone { private int phonePrice = 100; public int getPrice() { return phonePrice; } Поле нового класса относится к телефону вцелом. public class Communicator extends Phone { private String vendorName; public int getPrice() { return 600; } public String getVendorName(){ return vendorName; }
17 Перемещение метода или поля Вниз по иерархии: Вверх по иерархии:
18 Перемещение метода или поля: результат public class Phone { private String vendorName; private int phonePrice = 100; public int getPrice() { return phonePrice; } public String getVendorName() { return vendorName; } public class Communicator extends Phone { public int getPrice() { return 600; }
19 Выделение метода При разработке проекта часто возникает необходимость разбить код на независимые части – методы. Данный рефакторинг позволяет: Поместить выделенный кусок кода в отдельный метод, Поместить в данное место вызов нового метода.
20 Выделение метода: пример
21 Выделение метода: результат
22 Выделение интерфейса Данный рефакторинг используется при разделении программного интерфейса и реализации. При этом: > Создается новый интерфейс, который содержит описания указанных публичных методов, > Добавляется выражение implements с именем нового интерфейса в данный класс.
23 Выделение суперкласса Используется для формального объединения нескольких классов через похожие методы. Возможны варианты: > Перенести тело метода в суперкласс, > Создать в суперклассе абстрактный метод.
24 Использование супертипа Данный рефакторинг изменяет код на использование ссылок на суперкласс там, где это возможно. Используется для: Ослабления зависимостей от конкретной реализации, Обобщении типов аргументов методов. Часто используется в связке с «Выделением суперкласса».
25 Вынесение внутреннего класса При развитии проекта может создаваться множество внутренних классов, что затрудняет поддержку программы. Может потребоваться вынести внутренний класс как самостоятельный.
26 Вынесение внутреннего класса: результат
27 Преобразование анонимного класса во внутренний Анонимные классы могут быть востребованы другими классами.
28 Преобразование анонимного класса во внутренний: результат Данный рефакторинг позволяет выделить анонимные классы во внутренние и снабдить их конструкторами.
29 Контекстные подсказки Среда разработки предлагает подходящие типы рефакторингов для выделенных фрагментов кода.
30 Ссылки М. Фаулер, Рефакторинг Слайды «Основы рефакторинга» Онлайн-курсы:
31 Q&A
32 Спасибо! Андрей Дмитриев ©
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.