Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота №6.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
93.7 Кб
Скачать

Рефакторинг в Intellij idea

Ця IDE[, відрізняється від інших незвичайної для інтегрованого середовища компонуванням. Продуктова лінійка складається з однієї версії. До неї входить саме середовище, що володіє найрозвиненішими можливостями в області семантичного аналізу, а також набір плагінов, що розширюють її функціональність в інтеграції із фреймворками, серверами додатків і т.д. Останнім часом значно збільшилася кількість плагінов сторонніх виробників - як безкоштовних, так і платних.

На рівні середовища реалізована більшість загальних методів рефакторинга для Java коду (див. табл.1). Також, підтримується рефакторинг для JSP сторінок, CSS файлів, JavaScript, HTML файлів.

Code Inspection і автоматизований рефакторинг

В Intelli IDEA існує функція, відсутня в інших IDE, а саме - Code Inspection (якщо не взяти до уваги зв'язування з рефакторингом, щось схоже інтегроване й в Eclipse). Основне призначення її - автоматичний аналіз програми на предмет типових або неприйнятних по різних причинах помилкових прийомів програмування.

Наприклад, за технологіями:

  • Java SE: використання в Java SE 5 проекті конструкцій з більше ранніх версії - цикл по всіх елементах колекції за допомогою ітератора й повного синтаксису циклу, явне огортання/розгортання елементарних типів, не параметризироване використання класів колекцій;

  • Java ME: використання Object[].length в умові циклу, ініціалі затори масиву великого розміру;

  • Java EE: неправильне використання тегів і атрибутів в HTML і CSS.

Після аналізу програмного коду користувач, для деяких inspection може виконати визначені дії, наприклад, використати новий, спрощений формат циклу в Java SE 5. Причому, перетворення середовище виконає сама - видалить змінну итератора, створить змінну екземпляра колекції й перетворить формат циклу.

Плагіни

Поряд з базовими можливостями IDE існують плагіни сторонніх розробників. Наприклад, Sixth & Red River Software пропонує цілу лінійку плагінов:

  • Refactor-J - доповнює існуючі можливості такими як поділ класів, перетворення циклів - поділ і об'єднання, зміна вхідних і вихідних параметрів методів;

  • Refactor-X - додає підтримку рефакторинга XML коду - перетворення тег-атрибут, огортання-розгортання тегів і видалення тегів і атрибутів.

Крім них компанія пропонує ще 2 дуже цікавих продукти - це Inspection-JS - code inspection для JavaScript і MetricsReloaded для виміру якості коду в числах (LOC, SLOC для Java, JSP, XML і HTML і інші).

Комбінування code inspection з елементами рефакторинга дає в руки професіоналові небачену раннє владу над більшими обсягами коду. Тепер існує можливість автоматизована знаходити об'єкти застосування деяких методів рефакторинга, не прибігаючи до просматриванию коду.

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

Eclipse являє собою базову платформу з набором плагінов. Ця платформа взагалі не прив'язана ні до якої мови програмування.

У версії 3.0 був покладений початок відділенню засобів обробки вихідного коду від Java Development Tools (JDT), у який входили засоби підтримки рефакторинга.

У рамках цього були виділені 2 плагіна, відповідальних за незалежну від мови підтримку рефакторинга:

  • org.eclipse.ltk.core.refactoring - відповідає за бізнес-логіку рефакторинга;

  • org.eclipse.ltk.ui.refactoring - реалізація користувальницького інтерфейсу.

У базовій поставці Eclipse існують стандартні для Java IDE засобу рефакторинга, представлені в меню Refactoring в Java Perspective. Вони реалізують відповідні методи стосовно до Java.

Крім класичних методів варто відзначити “Infer generic Type Arguments”, що дозволяє визначити параметри для класів-шаблонів.

Підтримка інших мов і технологій (наприклад, JSP), реалізована у відповідних наборах плагинов:

  • WTP - Web Tools Project, що представляє набір плагинов для web розробки;

  • CDT - C++ Development Tools, набір плагинов для C++ розробки;

і т.д.

Так, наприклад, у версії 1.5 Web Tools Project, планованої до випуску одночасно з Eclipse 3.2, планується реалізувати наступні методи рефакторинга:

  • Rename, Delete, Move стосовно до класу з реалізацією змін в JSF і JSP станицях, що використають цей клас;

  • Rename, Delete стосовно до JSP, JSF сторінки;

  • Rename, Delete стосовно до методу або властивості Managed Bean з реалізацією змін в JSF сторінці.

У цілому, проект Eclipse пропонує як базову підтримку рефакторинга незалежно від мови, так і досить якісну підтримку для Java.