Pull to refresh

Сравнение DevExpress CodeRush и JetBrains ReSharper

Reading time 4 min
Views 8K

Первый раз я столкнулся с ReSharper лет 5 назад. Мне показалось что он тормозит Visual Studio и вообще его анализ разукрасили мой код до неузнаваемости. Большинство подсказок не представляло для меня ценности и только раздражало. Особо не разобравшись я снес его и пошел дальше валить лес двуручными пилами на протяжение следующих двух лет. Я думаю большинство начинающих, и не очень, разработчиков чувствуют что-то подобное и не понимают пользы ReSharper или CodeRush. В этой статье я сравню наиболее полезные и часто используемые возможности базируясь на моем двух летнем опыте использование CodeRush и годового опыта c ReSharper. Сразу оговорюсь перешел с CodeRush на ReSharper только из-за работодателя (на текущем месте работы компания предоставляет ReSharper).

Навигация по коду:


1.Поиск файлов

Наиболее часто используемая функция. Есть в обоих плагинах. Можно делать поиск по заглавным буквам в сamal case. Чуть лучше реализована в ReSharper, показывает больше деталей о найденных файлах.

2.Поиск символов

Поиск символов тоже есть в обоих плагинах. Ищет имена методов, переменные, классы и т.д. Опять же чуть лучше реализована в ReSharper.

3.Навигация к следующему упоминанию переменной

В Visual Studio 2010 эта функция встроена, но CodeRush реализация на много изящней. В CodeRush навигация осуществляется с помощью Tab-а, что само по себе революционно плюс подсветка следующего упоминания выглядит лучше.

4.Навигация по файлу

В CodeRush отсутствует, есть конечно встроенная функциональность Visual Studio (справа сверху выпадающее меню) и та только в C#. ReSharper же имеет поиск по внутренним элементам файла: классы и методы. Многие скажут, что эта функциональность далеко не такая важная чтобы ее упоминать в сравнительной характеристике. Однако стоит ей попользоваться пару дней и понимаешь, что без нее уже нельзя, особенно на уровне классов, которые обеспечивает доступ к базе данных (data access layer).

5.Последние открытые файлы и последние правки файлов

Первое есть в CodeRush и в ReSharper, второе только в ReSharper. Опять же оформление лучше в ReSharper.

6.Переход к определению (declaration) и реализации (implementation)

Переход к определению переменной, метода или класса встроен в Visual Studio (Ctrl-Click). Если вы используете Unity Framework, Castle.Windsor или другое решение для реализации шаблона фабрики или репозитория, то вам знакома проблема когда жмешь на метод (Ctrl-Click) чтобы увидеть его реализацию, а видишь только лишь определение интерфейса. Для этого в ReSharper есть переход непосредственно к реализации, а если его еще с помощью Autohotkey прикрутить к Shift-Ctrl-Click, то он вообще становится незаменимым.

Поиск:


Поиск использования

Есть в обоих плагинах. В CodeRush выглядит красивее, но в ReSharper-е больше функциональности. В частности можно отфильтровать только по местам где происходила запись в переменную или только чтение.

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


Оба плагина имеют много разных возможностей, но в целом в CodeRush все централизованней и проще. Большинство функций можно вызвать нажатием Ctrl-~. Перед применением CodeRush визуально показывает результат рефакторинга. Ниже несколько наиболее часто используемых мной функций.

1.Создание метода из куска кода.

Тут CodeRush явно выигрывает. Вопервых ReSharper показывает модальное диалоговое окно. Зачем? В большинстве случаев я использую параметры по умолчание, а если что-то и надо поменять то лучше это сделать непосредственно с кодом. Последнее что я сделаю это схвачусь за мышку и начну что-то менять в диалоговом окне. Эта функция в большинстве случаев используется для создания вспомогательных private методов для разгрузки сложности public методов. CodeRush же мало того что не нагружает вас диалоговыми окнами так еще и дает возможность выбрать место создания метода.

2.Переименование метода или переменной

Для переименования метода ReSharper опять же показывает модальное окно. Причем переменную можно переименовать без модального окна, а вот метод нет. Да и опции в модальном окне можно было бы спокойно запихнуть в опции плагина.

3.String.Format

Функциональность примерно одинакова. В ReSharper 6 добавили подсветку аргументов, что очень удобно.

Шаблоны и снипеты:


CodeRush в этой категории явно выигрывает. Вопервых встроенных снипеттов у него на порядок больше, а чтобы их легче было запоминать есть специальное окошко с подсказками CodeRush Training. Также в CodeRush есть целых сниппет фреймворк. Можно создавать снипеты базируясь на базовых подснипетах. Снипеты это отличительная черта CodeRush, в ReSharper же они конечно расширяют функциональность встроенных в Visual Studio снипетов, но все же этого далеко не достаточно.

Документация и видео:


CodeRush опять же выигрывает в этой категории. В свободном доступе очень мало видео с описанием ReSharper функциональности. DevExpress же имеет десятки видео демонстраций. В обоих продуктах существует возможность написания плагинов, но в случае с ReSharper полностью отсутствует документация, есть парочка пошаговых инструкций, но этого явно не достаточно.

Заключение:


Сложно однозначно сказать какой продукт лучше. ReSharper больше подходит для больших стабильных проектов с разветвленной архитектурой. CodeRush же больше подходит для стартапов и простых проектов, где снипеты могут реально сэкономить время.
Tags:
Hubs:
+20
Comments 20
Comments Comments 20

Articles