
- •Лабораторна робота №6. Рефакторинг Хід роботи
- •Автоматизований рефакторинг
- •Загальні відомості про всі Java ide, що підтримують рефакторинг
- •Ситуація на ринку Java ide
- •Рефакторинг в Intellij idea
- •Code Inspection і автоматизований рефакторинг
- •Плагіни
- •Рефакторинг в Eclipse
- •Рефакторинг в Sun NetBeans
- •Висновки
- •Порівняльна таблиця методів рефакторинга для мови Java
Рефакторинг в Sun NetBeans
Sun NetBeans надає базові, стандартні можливості рефакторинга Java.
Крім того, при рефакторинге класів EJB, застосовується система обмежень на застосування методів рефакторинга, що дозволяє зберегти цілісність і коректність EJB, наприклад, не можна перейменовувати обов'язкові для них методи, такі як ejbCreate.
Область застосування методів рефакторинга для класів включає як Java класи, так і J2EE дескриптори, але, на жаль, не включає JSP сторінки.
Project Jackpot
У середньостроковій перспективі очікується істотне посилення позицій NetBeans в області автоматизованого рефакторинга за рахунок реалізації довго розроблювального проекту Sun за назвою Jackpot. Суть проекту полягає в тому, щоб надати розробникові інструмент, що сполучає рефакторинг і rules engine. З його допомогою можна буде інспектувати й, по необхідності, перетворювати код зі збереженням його коректності й працездатності.
Висновки
На даний момент найбільш развитой, з погляду рефакторинга й аналізу коду, є Intelli Idea, що втримує пальму першості протягом декількох років з її гнучкими функціями code inspection і рефакторинга. Этого варто очікувати від IDE, орієнтованої на розроблювача, що предпочитает кодування.
За нею треба Eclipse, що володіє більшим потенціалом, як платформа для багатомовної розробки, більшим дисциплінованим співтовариством розроблювачів. Підтримка рефакторинга організована на базовому рівні й легко може бути реалізована для інших мов, також легко можуть бути додані нові методи рефакторинга. Реалізація для Java забезпечена на прийнятному рівні.
За ними ідуть інші IDE, у яких реалізовані базові можливості рефакторинга, підкріплювані за допомогою плагинов сторонніх виробників (найчастіше, платних).
Істотний прорив у цій області може відбутися з виходом Jackpot для NetBeans, що, можливо буде портирован на інші IDE платформи й, можливо буде підтримувати інші мови програмування.
Порівняльна таблиця методів рефакторинга для мови Java
Метод |
IntelliJ IDEA |
Eclipse |
Sun NetBeans |
Rename |
Shift+F6 |
Alt+Shift+R |
Alt+Shift+R |
Extract method |
Ctlr+Alt+M |
Alt+Shift+M |
Ctrl+Shift+M |
Change method parameters |
Ctrl+F6 |
Alt+Shift+C |
+ |
Encapsulate fields |
+ |
+ |
+ |
Pull up |
+ |
+ |
+ |
Pull down |
+ |
+ |
+ |
Move Class |
F6 |
Alt+Shift+V |
Alt+Shift+V |
Move inner to output level |
+ |
+ |
+ |
Convert Anonymous Class to Inner |
+ |
+ |
+ |
Extract interface |
+ |
+ |
+ |
Extract superclass |
+ |
|
+ |
Use supertype where possible |
+ |
+ |
+ |
Safely delete |
Alt+Delete |
+ |
+ |
Make static |
+ |
|
|
Convert to instance method |
+ |
|
|
Copy |
F5 |
|
|
Replace Method Code Duplicates |
+ |
|
|
Introduce variable |
Crtl+Alt+V |
Alt+Shift+L |
|
Introduce field |
Ctrl+Alt+F |
|
|
Introduce constant |
Ctrl+Alt+C |
+ |
|
Introduce parameter |
Ctrl+Alt+P |
+ |
|
Replace inheritance with delegation |
+ |
|
|
Inline |
Ctrl+Alt+N |
Alt+Shift+I |
|
Replace temp with query |
+ |
|
|
Replace constructor with factory method |
+ |
+ |
|
Generify template classes |
+ |
+ |
|
Migrate packages |
+ |
|
|