2008: Resharper против CodeRush

Я знаю, что есть много дискуссий, если лучше Resharper или CodeRush. В моей компании мы в настоящее время используем Resharper, и я в порядке.

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

Какой ваш любимый инструмент для рефакторинга, анализа кода, навигации внутри Visual Studio и т.д. и почему? В каких областях, по вашему мнению, лучше всего разбирать Resharper и в каких областях CodeRush?

Ответ 1

Честно говоря, оба они равны задаче. Что я нашел, так это то, что CodeRush/Refactor Pro имеет более крутую кривую обучения, но как только вы обучили себя и окружающую среду (и переключили несколько нажатий клавиш), CodeRush действительно становится эффективным.

ReSharper одинаково хорош и не позволяйте никому вводить вас в заблуждение по этому вопросу. Они не равны, и это будет зависеть от ваших потребностей. CodeRush является более расширяемым (IMO), но если вы переходите от одного к другому, вам не хватает пары вещей от другого.

В июле я взял месяц, и я сделал то, о чем вы говорите (я перешел из ReSharper в CodeRush и написал об этом в блоге).

Я доволен конечным результатом (есть пара вещей, которые мне не хватает... CodeRush Code Analysis по-прежнему не совсем соответствует уровню ReSharper и рефакторингу "Переместить"... кроме того, я нашел все, что мне нужно).

Вот мои сообщения в блоге, чтобы вы могли ссылаться на них (если хотите)...

Hello CodeRush!
После Недели 1
2 недели с CodeRush
CR/RP Wrapup

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

Ответ 2

Опыт рефакторинга CodeRush более быстрый и плавный (меньше нажатий клавиш, меньше диалогов - ноль, меньше движений мыши), чем у ReSharper. При переименовании или изменении подписи, которая воздействует на многие неоткрытые файлы на диске, CodeRush правильно поддерживает отмену нескольких файлов. Напротив, ReSharper представляет диалоговое окно с вопросом, хотите ли вы отменить поддержку этого переименования, и если вы скажете "да", ReSharper продолжит открывать все файлы, затронутые рефакторингом.

CodeRush имеет больше рефакторингов, чем ReSharper, хотя у ReSharper есть хороший элемент Move to to class refactoring, который еще не попал в CodeRush. У ReSharper также есть хорошая функция переименования, которая позволяет переименовывать переменные, которые содержат имя класса при переименовании этого класса. Например, если я переименую класс "Космический корабль" в "Космический корабль", ReSharper найдет идентификаторы с именами типа "superSpaceship" и предложит переименовать их в "superSpacecraft".

CodeRush немного быстрее, чем ReSharper при запуске Visual Studio и при открытии проекта. ReSharper использует больше памяти, в шесть раз больше на действительно больших решениях (например, 1000+ классов).

ReSharper сообщает больше о проблемах с фоновым кодом, чем CodeRush, а проблемы с кодом ReSharper вообще полезны (например, тип параметра можно понизить до класса ближе к объекту), однако CodeRush включает в себя проблему с кодом, которая не отображается локальные переменные, которые реализуют IDisposable, что очень полезно.

CodeRush отправляет значительно больше шаблонов кода (например, фрагменты кода VS), чем ReSharper, а шаблоны CodeRush рассчитаны на оптимальную эффективность (например, "ms" создает метод, который возвращает строку, "vb" создает переменную типа bool и "nl.i" создает новый инициализированный список). Ваши пальцы выигрывают от эффективности, но шаблоны привыкают к практике. Окно обучения CodeRush может облегчить эту кривую обучения, если вы ее используете во время кодирования. Интересно, что шаблоны CodeRush эффективно абстрагируют язык программирования, поэтому разработчики, работающие на нескольких языках (или переходе с одного языка на другой), могут нажать одни и те же клавиши и получить по существу один и тот же код, независимо от языка, на котором они кодируются.

ReSharper имеет приятную замену Intellisense и интересную замену инструментального инструмента. ReSharper имеет функцию подсказки с именем переменной, которая полезна. ReSharper также имеет функцию переформатирования кода, которая очень приятная.

Функции декларации CodeRush TDD для первого объявления требуют меньше нажатий клавиш, чем ReSharper (см. их в бесплатном CodeRush Xpress, который включает в себя большинство функций декларации потребления, отправляемых в полной версии CodeRush).

ReSharper найти все окна ссылок имеет несколько панелей для каждого выполненного поиска, что приятно. CodeRush предоставляет только одну панель для последнего выполненного поиска. CodeRush имеет опрятную функцию Tab to Next Reference, которая передает вам все ссылки на идентификатор, просто нажимая клавишу Tab (Shift + Tab возвращает вас). CodeRush Find All References появляется быстрее, чем ReSharper.

CodeRush Unit Test Runner, выпущенный в версии 9.3, поддерживает множество тестовых фреймворков (NUnit, MSTest, xUnit и MbUnit). Runner CodeRush Test Runner также понимает больше атрибутов структуры (например, параметр NUnit ExpectedException MatchType), а также поддерживает динамически генерируемые тесты (например, RowTests, атрибут Values, фабрики, теории и т.д.). Поддержка тестовых фреймворков расширяема, а CodeRush содержит исходный код для каждого из модулей плагина test framework.

Ответ 3

Я давно пользовался CodeRush + RefactorPro, а мой друг в одной команде использует Resharper.

Я действительно хотел бы иметь анализ кода на том же уровне, который у него есть в R #. CR здесь просто беден. R # отлично сочетается с функциями компоновки кода и имеет достойный тест-бегун. В CR нет компоновки кода и инструментов форматирования, а тестовый бегун еще не выпущен. Он находится на плановом этапе.

Что касается навигации, мы найдем оба инструмента равными.

Мой друг завидует мне шаблонам, которые имеет CR. Шаблоны R # намного отстают. Кроме того, кривая обучения R # хуже. CR намного легче понять. Кроме того, рефакторинг, предоставляемый Refactor Pro, лучше, чем в R #. С ними легче справиться. Итак, с точки зрения написания кода я нахожу CR лучше.

Недавно мы оба попытались написать плагины для реализации функций, которые мы видим в противоположном инструменте и хотели бы иметь. Я смог сделать это waaaay проще для CR. Расширяемость DXCore ослабевает.

В целом: у R # есть гораздо больше возможностей, но их гораздо труднее изучить. Кроме того, если вы обнаружите что-то не хватает, CR легче расширить.

Ответ 4

CodeRush - это где он у человека. Мне не понравилось resharpers intellisense, поэтому я отключил его, что делает resharper менее полезным.

Ответ 5

Это для меня. Я использую его с момента выпуска EAP, и мне это нравится! Как вы говорите, это гораздо больше, чем рефакторинг - это то, как оно меня поддерживает в навигации и понимании кода, которое я использую гораздо больше, чем рефакторинг. Две из моих любимых функций - это макет элементов для очистки кода и типа.

Я нахожу комментарий Тима, интригующий, где он говорит:

он разумно применяет себя к существующим вещам, которые вы делаете

Мне было бы интересно узнать, что это такое в CodeRush. Я очень уважаю продукты Developer Express.

Ответ 6

Я давно пользовался CodeRush и Refactor! Pro. CodeRush - это способ больше, чем рефакторинг. Как только вы узнаете правила, которые он устанавливает, скорость кодирования увеличивается. Однако, даже до того, как вы изучите правила, он разумно применит себя к существующим вещам, которые вы делаете, и облегчает их выполнение.

В самом деле, я больше всего скучаю по поводу кодирования в Ruby on Rails, так это то, что у меня нет IDE с CodeRush и Refactor! Пакеты TextMate дают мне часть пути, но это не то же самое.

У них есть бесплатная пробная версия, поэтому я рекомендую вам запустить ее и посмотреть, как вам это нравится. Я никогда не оглядывался назад.

Ответ 7

Я пробовал оба. JetBrains Resharper для меня лучше, чем DevExpress Coderush.

JetBrains лучше с IDE (в конце концов, у них есть собственная среда IDE для Java) DevExpress лучше с красивыми компонентами.

Ответ 8

Пробовав оба варианта, я бы сказал, что последняя версия CR/R имеет преимущество в плане интеграции с рабочим процессом программирования. Обычно вы не увидите диалоговое окно с вопросом, хотите ли вы сделать то или это, оно просто течет с тем, что вы делаете. Вы всегда удаляете нажатие всех доступных рефакторов и т.д. Последняя версия включает в себя IMHO важные рефакторы, такие как метод push/move. Навигация по вашим классам происходит быстрее в CR/R.
Я также заметил, что производительность в крупных проектах, как правило, лучше в CR/R, чем в Resharper.
Поддержка Intellisense лучше в Resharper, а также анализ кода.

Ответ 9

Есть ли разница в производительности между этими двумя? Я был долгое время пользователем ReSharper, но, наконец, сдался, когда я больше не мог выдержать вялой производительности. Чем сложнее мой проект (формы и т.д.), Тем медленнее становилась машина. Я удалил его, и производительность была способ, лучше. Является ли CodeRush медлительным?

Ответ 10

Я использовал Coderush за год до TDD. Я теперь использовал Reshaper почти 1,5 года. Я легко прохожу час или два без использования мыши теперь благодаря R # (только потому, что у меня часто заканчиваются батареи)

Если вы практикуете TDD и учитесь полностью использовать инструменты, то Resharper - это путь, я ударил многие разочарования с помощью CodeRush в TDD, и кажется, что в то время усилия собирались сделать оценку javascript, а не оценивать повышение производительности для ядро С#.

Если вы являетесь типом человека, который использует Resharper для CTRL + T и рефакторинга щелчка мыши, то вы, вероятно, получите больше от Coderush, особенно если генерация свойств будет высоко поднята в вашем списке соображений. Впечатления от 1-го дня CodeRush выигрывает, равно как и День X, если вы не научитесь полностью обнимать инструменты, но к концу месяца один из них получит солидный выигрыш Eval Resharper. В следующий раз, когда вы дойдете до мыши, есть ли для этого ярлык, попробуйте.

У Resharper есть более высокая кривая обучения для перехода (вам нужно свободно говорить о вещах за пределами типа goto) и работает с оптимальным потенциалом с помощью подхода TDD.

Ответ 11

Я не думаю, что есть какое-то сравнение. Я использовал Resharper в течение многих лет, но как только я перешел в CodeRush, я не оглядывался назад. Большая причина, по которой я перешел в CodeRush, - это ужасная производительность Resharpers с VS2010. R # сделал IDE почти непригодным для использования. У меня двухъядерный Intel с 6 ГБ оперативной памяти, и у него все еще были серьезные проблемы. Похоже, что это консенсус. CodeRush похож на его даже не VS2010. Очень легкий вес и просто полезный. Я не думаю, что один из них намного лучше, чем функции, и есть много вещей, которые мне больше нравятся в R #, но Jet Brains действительно сбросили мяч, когда VS2010 вышел, и я был очень разочарован.

Ответ 13

Даже спустя год я должен отдать должное Марку Миллеру, который дал очень справедливое сравнение.

Оба продукта улучшились с момента публикации, и у меня нет проблем с производительностью.

Одна из функций, с которой Resharper очень трудно жить, - это сборник рефакторинга File File. Вы можете выбрать несколько файлов в проводнике решений и перенести их в новую папку и/или проект, а ReSharper исправит пространства имен и ссылки для вас. Сегодня я использовал эту функцию по некоторым устаревшим кодам, и я считаю, что это спасло меня как минимум 4 часа утомительной работы.

Плагин сообщества DX_MoveCode предоставляет немного такого поведения, но без возможности обновления пространства имен и всех ссылок на типы, перемещенные, они просто не конкурируют.

R # Форматирование кода очень трудно жить, особенно если вы работаете с устаревшим кодом.

Мне нравится то, что рефакторинг в Code Rush настолько чище и результативен, однако эти диалоги R # предоставляют мне возможность обновлять переменные, комментарии и строки, связанные с рефакторингом. Для меня стоимость диалогов оправдана этой поддержкой.

Одна вещь, которая меня удивляет, - это то, как CR отображает проблемы с кодом: тики слева и справа от поверхности редактирования и ОГРОМНЫЙ намек. Тики прекрасны, но дают нам возможность отключить этот намек. Я удивлен, потому что CR обычно хорошо справляется с тем, чтобы оставаться в стороне, эти подсказки могут быть иногда болью.

Работа с параметрами в CR - основная боль. Code Rush не делает хорошую работу по упрощению или доступности модификации своего богатого набора опций.

Для меня, если CR предоставил те же функции Move File и Code Formatting R #, я бы купил их немедленно. Я - присоска для глазных конфет, и у CR это в пиках.

Ответ 14

Я использую resharper - просто скачал бесплатную вещь CodeRush.. но там нет элементов в строке меню. /.. ничего.. только строка между скобками... поэтому я думаю, что буду придерживаться resharper..

Ответ 15

Причина, по которой я получил R # для анализа кода. Показывать мне ошибку в реальном времени - это потрясающе. CR не имеет его или его слабого. он принимает их foreevr, чтобы получить право.

Я также люблю ссылки для навигации R #.

CR, вероятно, лучше в рефакторинге, но я редко делаю рефакторинг. Я делаю это вручную. У Refactor Pro есть так много рефакторингов, вы можете быть похоронены. Кривая обучения крутая.

Ответ 16

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

Вы можете просто так много узнать о таких вещах, как использование методов, классов, интерфейсов, наследников и т.д.

И если вы хотите применить рефакторинги, есть много поддержки, которая делает Resharper обязательным для меня.

Ответ 17

Оба эти инструмента превосходны. В настоящее время я использую Refactor! Pro. Я только начал использовать CodeRush Xpress. Я использовал ReSharper немного на клиентском сайте еще в 2005 году. Я купил Refactor! Pro пару лет назад, потому что в то время у него была более широкая языковая поддержка. В то время я делал VB и Refactor! поддерживал его, ReSharper не сделал этого. Я предпочитаю парадигму UI в CR/R! но поскольку я не использовал текущую версию ReSharper, я не могу судить, что лучше всего. Однако кажется, что ReSharper более совершенен в области анализа кода. Главное, что оба инструмента хороши и лучше, чем то, что вы получаете из коробки с помощью Visual Studio!

Ответ 18

Я давно пользуюсь IntelliJ и R #, и я уверен, что мне будет трудно переключаться, но мое любопытство в том, что я пропущу, достаточно силен, чтобы приблизиться к попыткам. Из того, о чем другие говорят на этой странице вопросов и в других местах в Интернете, я думаю, что я все еще пропущу навигационные и аналитические возможности R #.

Я нашел эту страницу видео, в которой показаны функции CR/RP. Это может быть полезно для таких людей, как я, которые хотят увидеть, чего они упускают, прежде чем устанавливать что-либо:

Учебные видеоролики и онлайн-уроки - Инструменты для кодирования и рефакторинг от DevExpress