2008: Решарпер против CodeRush
Я знаю, что есть много дискуссий, если Resharper или CodeRush лучше. В моей компании мы сейчас используем Resharper, и я в порядке.
Но на прошлой неделе я посмотрел скринкаст о CodeRush и подумал, что это потрясающе. Есть так много "новых" рефакторингов, что я сразу подумал о миграции.
Какой ваш любимый инструмент для рефакторинга, анализа кода, навигации внутри Visual Studio и т. Д. И почему? Как вы думаете, в каких областях Resharper лучше, а в каких областях CodeRush?
18 ответов
Честно говоря, они оба равны этой задаче. Я обнаружил, что CodeRush / Refactor Pro имеет более крутую кривую обучения, но как только вы тренируете себя и окружающую среду (и переключаетесь несколькими нажатиями клавиш), CodeRush действительно становится эффективным.
ReSharper одинаково хорош и не позволяет никому вводить вас в заблуждение по этому вопросу. Они не равны, хотя, и это будет зависеть от ваших потребностей. CodeRush намного более расширяем (IMO), но если вы перейдете от одного к другому, вы упустите пару вещей из другого.
В июле у меня был месяц, и я сделал то, о чем вы говорите (я перешел с ReSharper на CodeRush и написал об этом в блоге).
Я очень доволен конечным результатом (есть пара вещей, которые мне не хватает... Анализ кода CodeRush все еще не совсем на уровне ReSharper и рефакторинг "Move"... кроме того, я нашел все, что мне нужно).
Вот мои посты в блоге, чтобы вы могли ссылаться на них (если хотите)...
Привет CodeRush!
После 1 недели
2 недели с CodeRush
CR / RP Wrapup
Как я сказал, хотя оба инструмента превосходны и в зависимости от вашей готовности изучать новый инструмент, вам может быть лучше с тем, что у вас есть сейчас.
Рефакторинг CodeRush быстрее и плавнее (меньше нажатий клавиш, меньше диалогов - ноль, меньше движений мыши), чем в ReSharper. Когда вы переименовываете или изменяете подпись, которая влияет на многие неоткрытые файлы на диске, CodeRush должным образом поддерживает отмену нескольких файлов. В отличие от этого, ReSharper представляет диалоговое окно с вопросом, хотите ли вы отменить поддержку этого переименования, и если вы скажете "да", ReSharper продолжит открывать все файлы, затронутые рефакторингом.
CodeRush имеет больше рефакторингов, чем ReSharper, хотя ReSharper имеет приятный член Move для рефакторинга классов, который еще не достиг CodeRush. ReSharper также имеет хорошую функцию переименования, которая позволяет вам переименовывать переменные, которые содержат имя класса, когда вы переименовываете этот класс. Например, если я переименую класс "Spaceship" в "Spacecraft", 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 также имеет функцию переформатирования кода, что очень приятно.
Для функций декларации TDD в CodeRush требуется меньше нажатий клавиш, чем в ReSharper (см. Их в бесплатном CodeRush Xpress, включающем большинство функций объявления в порядке потребления в полной версии CodeRush).
В окне поиска всех ссылок ReSharper есть несколько панелей для каждого выполненного поиска, что приятно. CodeRush предоставляет только одну панель для последнего выполненного поиска. CodeRush имеет удобную функцию "Tab to Next Reference", которая просматривает все ссылки на идентификаторы простым нажатием клавиши Tab (Shift+Tab возвращает вас назад). Поиск всех ссылок CodeRush появляется быстрее, чем ReSharper.
UnitRunner CodeRush, выпущенный в 9.3, поддерживает больше платформ тестирования из коробки (NUnit, MSTest, xUnit и MbUnit). CodeRush Test Runner также понимает больше атрибутов платформы (например, параметр ExpectedException MatchType в NUnit), а также поддерживает динамически генерируемые тесты (например, RowTests, атрибут Values, фабрики, теории и т. Д.). Поддержка тестовых сред является расширяемой, и CodeRush включает исходный код для каждого из подключаемых модулей тестовых сред.
Я давно пользуюсь CodeRush + RefactorPro, в то время как мой друг из одной команды использует Resharper.
Мне бы очень хотелось, чтобы анализ кода был на том же уровне, что и в R#. ЧР здесь просто беден. R# также отлично справляется с компоновкой кода и имеет неплохой тестовый запуск. В CR нет верстки кода и инструментов форматирования, а тестовый запуск еще не выпущен. Это в запланированной стадии.
Что касается навигации, мы находим оба инструмента равными.
Мой друг завидует шаблонам, которые есть у CR. R# шаблоны далеко позади. Кроме того, кривая обучения R# хуже. ЧР гораздо легче понять. Кроме того, рефакторинги, предоставляемые Refactor Pro, лучше, чем в R#. С ними просто легче справиться. Итак, с точки зрения написания кода, я считаю CR лучше.
Недавно мы оба попытались написать плагины для реализации функций, которые мы видим в противоположном инструменте и хотели бы иметь. Я был в состоянии сделать это waaaay проще для ЧР. Расширяемость DXCore поражает.
В целом: R# имеет гораздо больше возможностей, но их гораздо сложнее освоить. Кроме того, если вы обнаружите, что чего-то не хватает, CR легче расширить.
CodeRush - это то, где он есть. Мне не понравился intehisense, поэтому я отключил его, что делает использование резарпера менее полезным.
Это Решарпер для меня. Я использую его с момента его первого выпуска EAP, и я люблю его до мелочей! Как вы говорите, это гораздо больше, чем рефакторинг - это то, как он поддерживает меня в навигации и понимании кода, и я использую его гораздо больше, чем рефакторинг. Две из моих любимых функций - это очистка кода и расположение элементов типа.
Я нахожу интригующим комментарий Тима, где он говорит:
это разумно применяется к существующим вещам, которые вы делаете
Мне было бы интересно услышать, что это такое в CodeRush. Я очень уважаю продукты Developer Express.
Я давно пользуюсь CodeRush и Refactor! Pro. CodeRush - это больше, чем просто рефакторинг. Как только вы изучите изложенные правила, скорость кодирования возрастет. Тем не менее, даже до того, как вы изучите правила, он разумно применяет себя к существующим вещам, которые вы делаете, и облегчает их выполнение.
Действительно, больше всего я скучаю по кодированию в Ruby on Rails, так как у меня нет IDE с CodeRush и Refactor! Пакеты TextMate помогают мне, но это не одно и то же.
У них есть бесплатная пробная версия, поэтому я советую вам попробовать и посмотреть, как вам это понравится. Я никогда не оглядывался назад.
Я пробовал оба. JetBrains Resharper намного лучше для меня, чем DevExpress Coderush.
JetBrains лучше с IDE (у них есть своя IDE для Java, в конце концов) точно так же, как DevExpress лучше с красивыми компонентами.
Попробовав и то и другое, я бы сказал, что последняя версия CR / R имеет преимущество в плане интеграции с рабочим процессом программирования. Обычно вы не увидите диалоговое окно с вопросом, хотите ли вы сделать то или иное, оно просто соответствует тому, что вы делаете. Вы всегда нажимаете клавишу от всех доступных рефакторов и т. Д. Последняя версия включает IMHO важные рефакторы, такие как метод push / move. Навигация по вашим классам быстрее в CR / R.
Я также заметил, что производительность в больших проектах, как правило, лучше в CR / R, чем в Resharper.
Поддержка Intellisense лучше в Resharper, а также анализ кода.
Есть ли разница в производительности между ними? Я долгое время был пользователем ReSharper, но, наконец, сдался, когда я больше не мог терпеть вялую работу. Чем сложнее становился мой проект (формы и т. Д.), Тем медленнее становилась машина. Я удалил его, и производительность была намного лучше. Является ли CodeRush вялым?
Я использовал Coderush в течение года до TDD. Я теперь использую Reshaper в течение почти 1,5 лет. Я легко езжу час или два, не используя мышь, теперь благодаря R# (только потому, что у меня часто разряжаются батареи)
Если вы практикуете TDD или учитесь использовать инструменты в полной мере, то Resharper - это то, что нужно, я столкнулся с множеством разочарований по поводу CodeRush в TDD, и кажется, что в то время усилия были направлены на оценку javascript, а не на повышение производительности ядра C#.
Если вы относитесь к тому типу людей, которые используют Resharper для CTRL+T и рефакторинга щелчком мыши, вы, вероятно, получите больше от Coderush, особенно если генерация свойств занимает высокое место в вашем списке рассмотрения. Впечатления от первого дня CodeRush выигрывает, равно как и день X, если вы не учитесь полностью использовать инструменты, но к концу месяца один с солидным успехом выигрывает Resharper. В следующий раз, когда вы дойдете до мыши, спросите, есть ли ярлык для этого, попробуйте.
Resharper имеет более высокую кривую обучения, чтобы начать работу (вы должны свободно владеть вещами, не относящимися к типу goto) и работает с оптимальным потенциалом благодаря подходу TDD.
Я не думаю, что есть какое-либо сравнение. Я использовал Resharper в течение многих лет, но как только я перешел на CodeRush, я не оглядываюсь назад. Основной причиной, по которой я перешел на CodeRush, была ужасная производительность Resharpers с VS2010. R# сделал IDE практически непригодным для использования. У меня двухъядерный процессор Intel с 6 ГБ оперативной памяти ноутбука, и у него все еще были серьезные проблемы. Кажется, наш консенсус по этому вопросу. CodeRush, как его даже не существует VS2010. Очень легкий и просто полезный. Я не думаю, что кто-то намного лучше в плане возможностей, и есть много вещей, которые мне нравятся больше в R#, но Jet Brains действительно бросил мяч, когда вышел VS2010, и я был довольно разочарован.
Даже через год, я должен отдать должное Марку Миллеру, он дал очень справедливое сравнение.
Оба продукта улучшились с момента публикации, и у меня нет проблем с производительностью.
Особенностью Resharper, без которой очень трудно обойтись, является коллекция рефакторингов Move File. Вы можете выбрать несколько файлов в обозревателе решений и переместить их в новую папку и / или проект, и ReSharper исправит пространства имен и ссылки для вас. Я использовал эту функцию сегодня в каком-то устаревшем коде и, по моим оценкам, он сэкономил мне по крайней мере 4 часа утомительной работы.
Плагин сообщества DX_MoveCode обеспечивает некоторую часть этого поведения, но без возможности обновления пространства имен и всех ссылок на перемещенные типы, он просто не конкурирует.
Форматирование кода R# очень сложно, особенно если вы работаете с устаревшим кодом.
Мне нравится тот факт, что рефакторинг в Code Rush намного чище и эффективнее, однако эти диалоги R# дают мне возможность обновлять переменные, комментарии и строки, связанные с рефакторингом. Для меня стоимость диалогов оправдана этой поддержкой.
Одна вещь, которая удивляет меня, это то, как CR отображает проблемы с кодом: отметки слева и справа от поверхности редактирования и ОГРОМНАЯ подсказка. Клещи в порядке, но дают нам возможность отключить эту подсказку. Я удивлен, потому что CR обычно делает хорошую работу, чтобы держаться в стороне, эти подсказки могут быть болью временами.
Работа с опциями в ЧР является основной болью. Code Rush не делает хорошую работу по упрощению или доступности изменения богатого набора параметров.
Для меня, если бы CR предоставил те же функции Move File и R# Formatting, я бы купил его немедленно. Я любитель глазных конфет, а у ЧР это в пиках.
ReSharper для меня. Я написал об этом здесь: http://www.tewari.info/2009/02/21/resharper-vs-coderush-refactor-pro/
Я использую Resharper - просто скачал бесплатную вещь CodeRush... но в строке меню нет элементов./... ничего... только строка между скобками... так что я думаю, что я буду придерживаться Resharper..
Причина, по которой я получил R # для анализа кода. Показывать мне ошибку в реальном времени - это круто. У CR нет ни его, ни его слабости. это берет их foreevr, чтобы получить право.
Я также люблю навигационные ярлыки R #.
CR, вероятно, лучше в рефакторинге, но я редко занимаюсь рефакторингом. Я делаю их вручную. Refactor Pro имеет так много рефакторингов, что вы можете быть похоронены. Кривая обучения крутая.
В последнее время я провел несколько крупных рефакторингов и сказал бы, что больше не могу работать без Resharper.
Вы можете просто узнать так много вещей так быстро, как использование методов, классов, интерфейсов, наследников и т. Д.
И если вы хотите применить рефакторинг, есть большая поддержка, которая делает Resharper обязательным для меня
Я давно пользуюсь IntelliJ и R#, и я уверен, что мне будет сложно переключиться, но мое любопытство по поводу того, что я пропускаю, достаточно сильно, чтобы приблизиться к попыткам. Из того, о чем другие говорят на этой странице вопросов и в других местах в Интернете, я думаю, что я все еще буду скучать по функциям навигации и анализа в R#.
Я нашел эту страницу видео, которые показывают функции CR/RP. Это может быть полезно для таких людей, как я, которые хотят увидеть, что им не хватает, прежде чем устанавливать что-либо:
Обучающие видео и онлайн-уроки - Помощь по кодированию и инструменты рефакторинга от DevExpress
Оба эти инструмента превосходны. В настоящее время я использую Refactor! Pro. Я только начал использовать CodeRush Xpress. Я немного использовал ReSharper на сайте клиента в 2005 году. Я купил Refactor! Pro пару лет назад, потому что тогда у него была более широкая языковая поддержка. Я занимался VB в то время и Refactor! поддержал это, ReSharper не сделал тогда. Я предпочитаю парадигму пользовательского интерфейса в CR/R! но поскольку я не использовал текущую версию ReSharper, я не могу судить, что лучше. Однако кажется, что ReSharper более продвинут в области анализа кода. Суть в том, что оба инструмента хороши и намного лучше, чем то, что вы получаете из коробки с Visual Studio!