Сравнительный анализ Eclipse и IntelliJ IDEA - сред разработки на языке Java
Журнал: Научный журнал «Студенческий форум» выпуск №21(21)
Рубрика: Технические науки
Научный журнал «Студенческий форум» выпуск №21(21)
Сравнительный анализ Eclipse и IntelliJ IDEA - сред разработки на языке Java
В настоящее время создание программного продукта немыслимо без использования такого инструмента, как интегрированная среда разработки или сокращенно IDE (Integrated development environment). По определению среда включает в себя текстовый редактор, компилятор и/или интерпретатор, средства автоматизации сборки и отладчик. Однако, потребности современного разработчика этим не ограничиваются, и чтобы им соответствовать, возможности IDE постоянно расширяются.
Рассмотрим две среды разработки на языке Java – Eclipse IDE и IDEA - и проведем краткий сравнительный анализ.
Eclipse представляет собой основанную на Java расширяемую платформу разработки. По сути - это просто среда разработки и набор сервисов для построения приложений на основе встраиваемых компонентов (плагинов). В составе Eclipse имеется стандартный набор плагинов, в том числе хорошо известный инструментарий - Java Development Tools (JDT).
Рисунок 1. Логотип Eclipse
Eclipse долгие годы уверенно держал пальму первенства по популярности среди Java IDE. Это связано с тем, что данная среда полностью бесплатная, с открытым исходным кодом, написанном преимущественно на Java. Открытость кода позволяет пользователям среды писать свои плагины и изменять среду под свои нужды и предпочтения.
IntelliJ IDEA - интегрированная среда разработки Java (IDE) для разработки программного обеспечения. Он разработан JetBrains (ранее известный как IntelliJ), и доступен в качестве платной расширенной и общей версии. Оба они могут использоваться для коммерческого развития. Community edition предназначена для JVM- и Android-разработки.
Рисунок 2. Логотип ItelliJ IDEA
Бесплатная версия IntelliJ IDEA поддерживает Java, Kotlin, Groovy и Scala; Android; Maven, Gradle и SBT; работает с системами контроля версий Git, SVN, Mercurial и CVS. Однако зачастую этого оказывается недостаточно для веб- и enterprise-разработки.
Одной из важнейших функций современных сред разработки является рефракторинг. «Рефакторинг – процесс изменения внутренней структуры ПО с целью облегчения понимания ее структуры и упрощения дальнейшей модификации без изменения внешнего поведения.» Это определение взято из книги, положившей начало современному представлению об этом процессе – «Рефакторинг - Улучшение существуещего кода» Мартина Фаулера (Refactoring: Improving the Design of Existing Code by Martin Fowler, Addison Wesley 1999).
Инструментарий рефакторинга описывается как множество методов, каждый из которых характеризуется именем, областью применения и механизмом преобразования. Каждое такое преобразование имеет небольшой размер и четкую логику реализации, что сводит к минимуму возникновение ошибок вследствие его выполнения.
На данный момент наиболее развитой, с точки зрения рефакторинга и анализа кода, является IntelliJ Idea, которая удерживает пальму первенства на протяжении нескольких лет с ее гибкими функциями code inspection и рефакторинга. Этого стоит ожидать от IDE, ориентированной на разработчика, предпочитающего кодирование.
За ней следует Eclipse, обладающая большим потенциалом, как платформа для многоязыковой разработки, большим дисциплинированным сообществом разработчиков. Поддержка рефакторинга организована на базовом уровне и легко может быть реализована для других языков, также легко могут быть добавлены новые методы рефакторинга. Реализация для Java обеспечена на приемлемом уровне.
Ниже, в таблице 1 содержится информация о том, в каком объеме реализованы методы рефакторинга в IntelliJ IDEA и Eclipce.
Таблица1.
Реализация методов рефакторинга в IntelliJ IDEA и Eclipce
Метод |
IntelliJ IDEA |
Eclipce |
Rename |
Shift+F6 |
Alt+Shift+R |
Extract method |
Ctlr+Alt+M |
Alt+Shift+M |
Change method parameters |
Ctrl+F6 |
Alt+Shift+C |
Encapsulate fields |
+ |
+ |
Pull up |
+ |
+ |
Pull down |
+ |
+ |
Move class |
F6 |
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 |
+ |
|
Приведем пример простого рефакторинга. Перенесем сроку «message» в параметр метода (Introduce parameter).
Рисунок 3. Пример рефакторинга в среде Eclipse
Рисунок 4. Результат рефакторинга в среде Eclipse
Рисунок 5. Пример рефакторинга в среде IDEA
В отличие от Eclipce IDEA предлагает варианты для имени параметра. Она учитывает и название метода, и тип переменной, и значение, и названия подобных переменных в других местах, и те названия, которые вы давали подобным переменным раньше.
Рисунок 6. Результат рефракторинга в среде IDEA
Особенностью Eclipse и значительным плюсом - обширнейшая база документации самого разного возраста, ценности и полезности. Увы, обнаружить несоответствующую текущей версии картинку в инструкции, например, с устаревшим интерфейсом и расположением кнопок — обычное дело для этой IDE. К сожалению, проблема запоздалого обновления документации очень характерна для любых проектов с исходным кодом.
Не так давно преимущество IDEA над Eclipse было интегрированным GUI-компоновщиком. Теперь в Eclipse появился визуальный редактор (Visual Editor). Компилятор GUI Eclipse - это отдельный компонент, который имеет очень большое преимущество перед IDEA и не требует дополнительных метаданных или других файлов.
Редактор EclipseVisual Editor (VE) 0.5, поддерживающий AWT / Swing, доступен для Eclipse 2.1.x. Следующая версия 1.0 для Eclipse 3.0. VE 1.0 можно загрузить как отдельный пакет с веб-сайта Eclipse. Эта версия будет поддерживать не только AWT / Swing, но и SWT.
Следует сказать, что обе IDE имеют свои преимущества и недостатки. Главное достоинство Eclipse IDE заключается в настройке среды под нужды программиста путем внедрения плагинов, а IDEA – в ее «интеллектуальности». Однако, в конечном итоге выбор среды разработки остается за программистом.