LINUX.ORG.RU

История изменений

Исправление iZEN, (текущая версия) :

Demo 2

Рефакторинг кода для написания тестов

14) Реорганизация кода примера в NetBeans и IDEA практически один-в-один, не считая, конечно, отличий в интерфейсе диалоговых окон.

15) Автоматический статический импорт в NetBeans тоже есть.

Demo 3

Генерация элементов класса

16) Создание нового класса из объявления new Person(...) в NetBeans сделано иначе, в IDEA. По Alt+Enter разрешения противоречий в NetBeans предлагается два варианта: создать независимый класс в пакете, либо объявить в текущем классе в качестве внутреннего приватного статического класса. В IDEA появляется отдельный диалог с кнопками OK/Cancel для выбора целевого пакета и целевого каталога, а в NetBeans все пункты для выбора нужного способа находятся во всплывающей подстрочной подсказке. Здесь NetBeans удобнее. Зато IDEA догадалась обозвать параметры конструктора нового класса более подходящими именами (String name, int age), в то время как NetBeans тупо взяла за основу содержимое параметра и обезличила второй: public Person(String nik, int i).

17) Создание одноимённых полей по сигнатуре конструктора нового класса в NetBeans затруднена, необходимо поработать с редактором кода в теле конструктора, чтобы были определены сущности для полей: this.name = name; this.age = age;. Поля могут быть финальными по разрешению противоречий Alt+Enter.

18) Генерация get/set для полей реализована при этом модификатор final для поля, инициализированного в конструкторе, учитывается, и не генерируется противоречивый код с присваиванием значений финальному полю.

19) Генерация методов equals() и hashCode(). В NetBeans реализуется через вызов пункта контектного меню «Втавка кода...» Создать equals() и hashCode(). Открывается диалог с двумя одинаковыми списками полей, значения которых нужно выбрать для использования в этих двух методах, всё наглядно и просто. А в IDEA для этого используется мастер. Код получается похожим, обе среды предлагают сделать его короче, автоматически оптимизируя условные выражения, что, кстати, вызвало смех в зале. :) Результирующий код NetBeans после автоматических генерации и оптимизаций:

@Override
    public int hashCode() {
        int hash = 3;
        hash = Objects.hashCode(this.name) + hash * 37;
        hash = hash * 37 + this.age;
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Person other = (Person) obj;
        if (!Objects.equals(this.name, other.name)) {
            return false;
        }
        return this.age == other.age;
    }
В IDEA он короче за счёт отсутствия фигурных скобок в однострочных выражениях.

Demo 4

Навигация по проекту.

20) NetBeans тоже может искать в дереве файлов файл с вводимым именем, но к заданной строке в нём не переходит.

21) Случаи использования. В NetBeans эта команда доступна в контектном меню элемента из дерева окна Проектов и в элементах дерева Навигатора классов. При вызове открывается диалоговое окно для задания параметров поиска (в комментариях, в преопределённых, перегруженных методах; внутри текущего проекта, среди открытых проектов, задать собственный контекст поиска и т.д.). Результаты поиска отображаются в отдельном окне-вкладке области вывода, новый поиск открывает новое окно с результатами — можно сравнивать и анализировать несколько поисковых запросов одновременно. В окне результата поиска возможна группировка по критериям, но она беднее (только логический и физический виды), чем в IDEA.

Demo 6

Улучшение существующего кода

22) <Сравнение сред слишком сложное>

Demo 7

Печатная машинка vs. мышь

23) Идея изучения шорткатов простив мышевозни. Однако ведущий не принижает роль мыши в IDE: нужда в ней возникает при навигации по ссылкам и меню, при просмотре кода, работе с IDE как с CAD (средой проектирования).

Demo 8

Общие принципы эффективной работы

24) Статистика использования Code Completion за последнее время. Интересная и прикольная фича в IDEA. Для самоанализа и самокопания. ;)

25) Автосохранение файлов. Знакомо. В NetBeans есть внутренняя история изменений каждого файла. Можно историю завязать на систему контроля версий Mercurial, Git, SVN через плагины. Просмотр diff между текущим файлом и какой-то версией в истории изменений тоже работает в среде абсолютно прозрачно (во вкладках окна редактирования). В IDEA такая особенность есть?

26) Автоформатирование при сохранении. Использую в NetBeans: автоматически убираются неиспользуемые объявления импорта, реорганизацию импорта. Для всех языков можно настроить общие действия автоформата при сохранении (убрать концевые пробелы, например, и переформатировать строки).

Спасибо за внимание. Освежил свои знания по средам и их возможностям работы с кодом.

Исходная версия iZEN, :

По просмотренному сравню NetBeans с IDEA (продолжение).

Demo 2

Рефакторинг кода для написания тестов

14) Реорганизация кода примера в NetBeans и IDEA практически один-в-один, не считая, конечно, отличий в интерфейсе диалоговых окон.

15) Автоматический статический импорт в NetBeans тоже есть.

Demo 3

Генерация элементов класса

16) Создание нового класса из объявления new Person(...) в NetBeans сделано иначе, в IDEA. По Alt+Enter разрешения противоречий в NetBeans предлагается два варианта: создать независимый класс в пакете, либо объявить в текущем классе в качестве внутреннего приватного статического класса. В IDEA появляется отдельный диалог с кнопками OK/Cancel для выбора целевого пакета и целевого каталога, а в NetBeans все пункты для выбора нужного способа находятся во всплывающей подстрочной подсказке. Здесь NetBeans удобнее. Зато IDEA догадалась обозвать параметры конструктора нового класса более подходящими именами (String name, int age), в то время как NetBeans тупо взяла за основу содержимое параметра и обезличила второй: public Person(String nik, int i).

17) Создание одноимённых полей по сигнатуре конструктора нового класса в NetBeans затруднена, необходимо поработать с редактором кода в теле конструктора, чтобы были определены сущности для полей: this.name = name; this.age = age;. Поля могут быть финальными по разрешению противоречий Alt+Enter.

18) Генерация get/set для полей реализована при этом модификатор final для поля, инициализированного в конструкторе, учитывается, и не генерируется противоречивый код с присваиванием значений финальному полю.

19) Генерация методов equals() и hashCode(). В NetBeans реализуется через вызов пункта контектного меню «Втавка кода...» Создать equals() и hashCode(). Открывается диалог с двумя одинаковыми списками полей, значения которых нужно выбрать для использования в этих двух методах, всё наглядно и просто. А в IDEA для этого используется мастер. Код получается похожим, обе среды предлагают сделать его короче, автоматически оптимизируя условные выражения, что, кстати, вызвало смех в зале. :) Результирующий код NetBeans после автоматических генерации и оптимизаций:

@Override
    public int hashCode() {
        int hash = 3;
        hash = Objects.hashCode(this.name) + hash * 37;
        hash = hash * 37 + this.age;
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Person other = (Person) obj;
        if (!Objects.equals(this.name, other.name)) {
            return false;
        }
        return this.age == other.age;
    }
В IDEA он короче за счёт отсутствия фигурных скобок в однострочных выражениях.

Demo 4

Навигация по проекту.

20) NetBeans тоже может искать в дереве файлов файл с вводимым именем, но к заданной строке в нём не переходит.

21) Случаи использования. В NetBeans эта команда доступна в контектном меню элемента из дерева окна Проектов и в элементах дерева Навигатора классов. При вызове открывается диалоговое окно для задания параметров поиска (в комментариях, в преопределённых, перегруженных методах; внутри текущего проекта, среди открытых проектов, задать собственный контекст поиска и т.д.). Результаты поиска отображаются в отдельном окне-вкладке области вывода, новый поиск открывает новое окно с результатами — можно сравнивать и анализировать несколько поисковых запросов одновременно. В окне результата поиска возможна группировка по критериям, но она беднее (только логический и физический виды), чем в IDEA.

Demo 6

Улучшение существующего кода

22) <Сравнение сред слишком сложное>

Demo 7

Печатная машинка vs. мышь

23) Идея изучения шорткатов простив мышевозни. Однако докладчик не принижает роль мыши в IDE: нужда в ней возникает при навигации по ссылкам и меню, при просмотре кода, работе с IDE как с CAD (средой проектирования).

Demo 8

Общие принципы эффективной работы

24) Статистика использования Code Completion за последнее время. Интересная и прикольная фича в IDEA. Для самоанализа и самокопания. ;)

25) Автосохранение файлов. Знакомо. В NetBeans есть внутренняя история изменений каждого файла. Можно историю завязать на систему контроля версий Mercurial, Git, SVN через плагины. Просмотр diff между текущим файлом и какой-то версией в истории изменений тоже работает в среде абсолютно прозрачно (во вкладках окна редактирования). В IDEA такая особенность есть?

26) Автоформатирование при сохранении. Использую в NetBeans: автоматически убираются неиспользуемые объявления импорта, реорганизацию импорта. Для всех языков можно настроить общие действия автоформата при сохранении (убрать концевые пробелы, например, и переформатировать строки).

Спасибо за внимание. Освежил свои знания по средам и их возможностям работы с кодом.