Статьи

Лучшие 10 новых функций Java в IDE NetBeans 6.5 (часть 1)

Хотя последняя версия IDE NetBeans в значительной степени ориентирована на динамические языки и, в частности, на PHP, существует много новых и улучшенных функций, которые должны особенно понравиться программистам на Java. Полный список функций для всего выпуска IDE NetBeans 6.5 очень долго и красочно , но давайте сосредоточиться именно на 10 из Java-связанных моментов. Давайте начнем с того, что наденем шляпу Java-программиста и зададимся вопросом: «Что из множества интересных новинок будет особенно привлекательным для Java-программиста? И почему Java-программист должен теперь рассматривать IDE NetBeans 6.5 выше своих конкурентов?»

Это сразу отсекает многие вещи динамического языка (то есть выбрасывает из окна классные вещи Ruby, Python и PHP), а также вещи, которые связаны с использованием IDE каким-то особым образом. Просто голые Java-вещи остались. И основные моменты этого, на мой взгляд, следующие, в порядке значимости:

  1. Улучшения производительности. Если есть одна область, которая интересует каждого Java-программиста (в действительности, любого программиста вообще), это производительность их IDE. Дискуссии на эту тему бушуют по всему Интернету — IDE, которая, несмотря на растущий набор функций, продолжает (и повышает степень, в которой она) эффективна, является той, в которую стекается большинство программистов. Более чем любой другой (при условии, что набор функций является конкурентоспособным), этоявляется отличительной чертой между IDE, если разница между ними по этому вопросу достаточно значительна. Даже больше, чем раньше, среда IDE NetBeans 6.5 фокусируется на этом аспекте. После нескольких выпусков в группе разработчиков NetBeans существует группа по повышению производительности (во главе с Ярославом Тулачом, одним из основателей проекта, который, как никто другой, знает, как настроить и настроить мелкие детали, чтобы добиться большого эффекта), уделяя особое внимание эти аспекты: обеспечение того, чтобы время запуска модулей в системе было приемлемым, усиление ловушек, с помощью которых создаются объекты, попытки сделать это как можно более ленивым и т. д.

    Производительность охватывает многие области, от времени запуска до отзывчивости редактора (т. Е. Если вам нужно дождаться появления окна завершения кода, у вас есть проблемы с производительностью), до скорости, с которой появляются такие диалоги, как окно «Параметры». Кроме того, по мере увеличения размера приложений до такой степени, что они становятся чрезвычайно большими со многими тысячами файлов, это неизбежно влияет на производительность: задача состоит в том, чтобы сохранить это влияние как можно более ограниченным. (Связанная проблема заключается в воспроизведении отчетов о связанных проблемах: если ваша проблема с производительностью возникает, когда у вас есть недавно открытый проект, состоящий из сотен тысяч файлов, есть вероятность, что ваша проблема будет трудно воспроизвести, и связанная с этим вероятность того, что ваше приложение не оптимально разработан для начала).

    Один из способов снижения производительности до минимума состоит в том, что впервые, начиная с среды IDE NetBeans 6.5, узел в иерархии дерева создается только тогда, когда это необходимо (т. Е. Когда пользователь прокручивает окно Projects вниз, например) и не раньше этого момента. В более общем смысле, модульность также относится к этому, так как вы должны установить необходимый дистрибутив IDE: например, если вы «всего лишь» разработчик настольных систем Java, вы не должны получать дистрибутив NetBeans, включающий веб-функции и функции мобильной разработки. , Эти дополнительные функции предоставляются дополнительными модулями, которые необходимо будет запускать излишне, что увеличивает время запуска и не дает никаких функций, которые вам пригодятся.

    Короче говоря, трудно представить, насколько серьезно команда NetBeans воспринимает проблемы производительности. Это новое в 6.5? Нет, но некоторые из усовершенствований API, которые были сделаны для 6.5, были сделаны специально для этой конкретной цели, то есть для обеспечения того, чтобы IDE продолжала улучшать свою производительность , в то же время приобретая новые функции. Эти два требования, при отсутствии этой конкретной направленности, являются взаимоисключающими. Короче говоря, в 6.5 следует заметить значительное улучшение производительности — от времени запуска до отзывчивости редактора — до всего, что вы делаете в IDE, хотя ключевым элементом является выбор правильного дистрибутива для ваших нужд.

  2. Компиляция и развертывание при сохранении. Одна из ключевых особенностей, которая отличает NetBeans своим отсутствием, теперь включает 6.5. Лучше, чем описать это словами, показать это в действии. Смотрите видео ниже для деталей.

  3. Groovy. Groovy в большей степени, чем любой другой язык сценариев, подходит для выполнения тяжелой работы с традиционными громоздкими Java-задачами, не требуя от вас огромного умственного сдвига, чтобы начать использовать его. Легкость, с которой это возможно, довольно удивительна:

    (Другими словами, просто закодируйте свой класс Groovy в Groovy, а затем, в своем Java-классе, просто представьте, что класс Groovy — это класс Java, которым он в любом случае станет, когда вы его скомпилируете, и вызовите его методы так, как вы это делаете. с классом Java.) Да, внедрение Groovy — это расширение возможностей для программистов на Java. Вот один из многих простых примеров на этот счет:

    Действительно, не поверьте мне на слово, но посмотрите, например, некоторые комментарии в конце этого объявления о выпуске IDE NetBeans 6.5 и впитайте энтузиазм, с которым эта функция в 6.5 приветствуется.

  4. Улучшения редактора Java. Редактор Java с точки зрения производительности (см. Выше) и, в частности, диапазона рефакторингов, является областью, в которой среда IDE NetBeans постоянно улучшается и продолжает отставать от своих коллег. На самом деле, за любой презентацией, сделанной любым докладчиком NetBeans (когда-либо, я осмелюсь сказать), следовал вопрос / утверждение: «Да, но в IDE XYZ больше, лучше и быстрее рефакторингов». В этом смысле, является ли NetBeans IDE 6.5 равна другой IDE в этом отношении не является столь существенным , как ли она усиливает достаточно существенно для усовершенствования , чтобы быть заметным , так как он всегда выходит с помощью инструментов генерации кода, которые превосходят своих сверстников. Если прогресс редактора одинаков для разных выпусков, и существуют значительныеВ то же время, когда внедряются другие функции (например, инструменты генерации кода), становится очевидным, что предпринимаются согласованные попытки догнать и даже улучшить предложения конкурентов.

    Вот несколько признаков того, что это, безусловно, имеет место в 6.5:

    • Завершение кода. Я считаю, что жемчужина любого редактора кода вместе с функцией «подсказки / подсказки» (так чудесно представленной в IntelliJ) является функцией завершения кода. Любое улучшение в этой области после производительности неизбежно будет очень детализированным, что является именно тем уровнем, на котором завершение кода является наиболее полезным. Одним из усовершенствований в этой области, попавших в среду IDE NetBeans 6.5, является завершение кода CamelCase:

      Вы можете просто написать первые буквы слова, чтобы получить умное завершение кода. Как показано выше, «iL» расширяется до invokeLater. Кроме того, впервые в редактор SQL было введено автозавершение кода, что не является тривиальным улучшением для разработчиков Java, которым необходимо работать с базами данных (а какой разработчик этого не делает?):

      (В редакторе SQL есть ряд других существенных улучшений: история SQL, редактируемые и сортируемые результаты, несколько вкладок для разных результатов, а еще несколько в планировании следующего выпуска.)

    • Создание Getter / Setter из существующей переменной. Если вы хотите реорганизовать переменную так, чтобы она получала комбинацию метода получения / установки, это все параметры, доступные в 6.5 …

      … по сравнению с 6.1:

    • Анализатор иерархии вызовов. Хотите знать, как метод относится к другому методу? Например, какой код в вашем приложении вызывает текущий метод? И какой код вызывается им? В 6.5 нет ничего проще, чем щелкнуть правой кнопкой мыши по строке и выбрать «Иерархия вызовов». Откроется новое окно с несколькими кнопками для обновления представления с помощью вызывающих или вызываемых абонентов и настройки параметров фильтрации: 

    • Форматирование Рефакторинг. Еще одна область, в которой в среде IDE NetBeans есть возможности для улучшения, — это форматирование. Параметры форматирования всегда можно было установить в рамках IDE, а не в проекте, в отличие (впервые) в 6.5:

      Т.е. вся вкладка, которую вы видите выше, не была там до 6.5.

    • Javadoc Рефакторинг. Для другого примера улучшений редактора, давайте посмотрим на этот кусок кода:

      public class HelloWorld {

      /**
      *
      * @param name
      */
      public String SayHello(String name) {
      return "Hello" + name;
      }

      }

      Теперь я решил, что возраст должен быть передан методу, поэтому я добавляю новый параметр:

      public class HelloWorld {

      /**
      *
      * @param name
      */
      public String SayHello(String name, int age) {
      return "Hello " + name + ". You're " + age + " years old.";
      }

      }

      И поэтому в этой ситуации вы можете (начиная с версии 6.5) щелкнуть правой кнопкой мыши узел (например, в пакете или классе Java в окне «Проекты») и выбрать «Инструменты | Проанализируйте Javadoc. В приведенном выше коде среда IDE покажет следующее окно:

      Как видите, эта функция позволяет очень легко обновлять Javadoc. Поставьте галочки рядом с исправлениями Javadoc, которые вы бы хотели реализовать в IDE, как вы можете видеть ниже:

      Затем нажмите «Исправить выбранное», и для вас будут созданы некоторые простые заглушки Javadoc:

    • Изменения API, связанные с редактором Java. Некоторые из ( многих ) изменений API, которые произошли в периоде 6.5, очень актуальны для редактора Java. Например, всплывающее окно небольшого генератора кода, которое появляется при нажатии Alt-Insert, теперь может быть расширено. Это означает, что вы можете добавлять туда свои собственные записи, что в результате позволит вам создавать дополнительные / пользовательские фрагменты кода в редакторе Java (или любом другом). Ранее всплывающее окно генератора кода было доступно только в редакторе Java, а теперь его можно добавить в любой редактор вообще, т. Е. В один из стандартных редакторов IDE (например, редактор HTML, как показано здесь , или редактор JavaFX). ( как показано здесь ) или пользовательский редактор, созданный извне.

      Другим примером является то, что API-интерфейс палитры был усовершенствован, так что, если палитра использует это улучшение, теперь вы можете перетаскивать фрагменты кода из редактора в палитру (а также, конечно, наоборот). Это удобно для хранения часто используемых фрагментов кода для последующего повторного использования. Рассматриваемый API был применен к палитре только для файлов HTML, в 6.5, но, вероятно, он будет распространен и на все другие палитры (и вы можете очень просто применить его к вашим собственным пользовательским палитрам, которые у вас уже могут быть).

  5. Улучшения в Matisse GUI Builder. Matise GUI Builder — не лучший друг, но он определенно должен быть лучше, так как сейчас вышла версия 6.5. Внесены некоторые довольно сложные изменения, частично для упрощения работы с пользовательским интерфейсом GUI Builder и частично для улучшения сгенерированного кода:

    • Совершенно новые редакторы компонентов Swing. Работать с моделями JTree никогда не было так весело, но теперь, смею сказать, это очень близко с этим новым редактором моделей JTree:

      Другими словами, вышеупомянутое не является улучшением , а является совершенно новым редактором со свободным пространством форм, как вы можете видеть выше, где вы можете просто набирать текст, и, основываясь на отступах, модель JTree создается редактором ,

      Аналогичная вещь была проделана для JComboBox и JList. Вот редактор JList, сначала в 6.1, а затем новая версия свободной формы 6.5:

    • Nimbus Previewer. При разработке макета в Matisse GUI Builder вы можете очень легко просмотреть текущее состояние в новом интерфейсе Nimbus:

    • Многие другие настройки GUI Builder. Сравните эти два скриншота, первый из 6.1 и второй из 6.5, чтобы увидеть, как много изменилось с точки зрения того, что можно настроить глобально:

      Здесь мое любимое усовершенствование — «Генерировать полностью квалифицированные имена классов», которое при отмене выбора гарантирует, что операторы импорта добавляются в верхнюю часть класса, тогда как сами операторы кода являются максимально короткими и компактными. Также полезно для рефакторинга, потому что, когда класс, на который вы ссылаетесь, перемещается в другой пакет, вам нужно только обновить свои операторы импорта, которые аккуратно расположены вверху, а не вставлены в синие блоки, которые значительно менее легко редактировать.

И это конец части 1. Во второй части мы рассмотрим 5 других функций в IDE NetBeans 6.5, специально предназначенных для разработчиков Java, в частности таких инструментов, как Debugger и Profiler, инструментами, которыми должен пользоваться любой пользователь IDE NetBeans. в состоянии познакомиться с большим эффектом. До тех пор весело проводите время с NetBeans и обязательно передавайте команде NetBeans любые хорошие, плохие / уродливые комментарии , которые могут у вас возникнуть.