Comments 20
О чём не упомянули в ReSharper'e, что меня держит именно на нём.
— Улучшенное подобие IntelliSense — ускоренное написание частоиспользуемых конструкций.
— Code analysis — богатые настройки, которые помогают выработать coding style.
— Конвертация циклов
— Улучшенное подобие IntelliSense — ускоренное написание частоиспользуемых конструкций.
— Code analysis — богатые настройки, которые помогают выработать coding style.
— Конвертация циклов
Призываю в топик Дмитрия Нестерука.
Топик настолько поверхностный, что не покрывает и малой доли возможностей обоих плагинов. Особенно решарпера. Создается впечателение, что автор решарпером и не пользовался толком.
Топик настолько поверхностный, что не покрывает и малой доли возможностей обоих плагинов. Особенно решарпера. Создается впечателение, что автор решарпером и не пользовался толком.
так он так и написал, что снес не разобравшись. К тому же автор пишет «Большинство подсказок не представляло для меня ценности и только раздражало.». То есть подсказки типа «access to modified closure» не имеют смысла по мнению автора. Вот решарпер их точно находит, а про код раш не ясно. Сравнения по сути я не увидел
Решарпер не только содержит достаточно продвинутые подсказки, но и объясняет их — например, в случае с Access to Modified Closure, пользователь получает в контекстном меню дополнительный элемент 'Why is ReSharper suggesting this?', нажатие на который ведет его на страницу с объяснением.
Я тут, но если учесть поверхностность топика, я думаю что любой мой комментарий будет раз в 10 больше самого топика, поэтому ограничусь теми замечаниями, которые сделаны в этом посте.
Во-первых, насчет окна для создания метода из куска кода: это критично, т.к. во многих случаях, пользователь сам заранее не подозревает, какие элементы кода и в каком направлении (
Пример с переименованием некорректен, т.к. есть две ситуации – в одной все затронутые элементы кода находятся в одном файле, в другом – не только. Соответственно у R# два подхода — в одном он ведет себя как CR, т.е. дает редактировать все inline, в другом – открывает модальное окно. Окно, кстати, с подсказками именования, которые тоже порой бывают полезны.
Насчет шаблонов — реализация мнемоников в CR существует и для R#, только она является не встроенной возможностью, а сторонним решением, основанным на Live Template’ах. Иначе говоря, вы можете подгрузить XML-файл, который даст вам аналогичный функционал. Сам файл можно скачать тут.
Насчет документации к написанию плагинов – для R# она находится тут и постоянно обновляется. Сейчас ведется работа над полноценным SDK, который будет выпущен в самое ближайшее время.
Да, и для тех, кто хочет узнать побольше о возможностях R# есть например этот скринкаст, не говоря о доменно-специфичных скринкастах (правда на английском языке), которые тоже можно найти на jetbrains.tv.
Если есть еще вопросы, задавайте – по возможности отвечу.
Во-первых, насчет окна для создания метода из куска кода: это критично, т.к. во многих случаях, пользователь сам заранее не подозревает, какие элементы кода и в каком направлении (
out
или просто) будут передаваться параметры. Соответственно мы можем конечно слепо сделать Extract Method со всеми дефолтами, но возможно это не то, что нужно пользователю. Поэтому диалоговое окно уместно: оно показывает не только параметры, но и финальный код. А насчет места, в которое вставлять код – у R# предостаточно функционала, связанного с перемещением метода по кодовой базе. Например, внутри исходного файла можно держать Ctrl+Alt+Shift и использовать arrow keys чтобы двигать весь метод вверх или вниз.Пример с переименованием некорректен, т.к. есть две ситуации – в одной все затронутые элементы кода находятся в одном файле, в другом – не только. Соответственно у R# два подхода — в одном он ведет себя как CR, т.е. дает редактировать все inline, в другом – открывает модальное окно. Окно, кстати, с подсказками именования, которые тоже порой бывают полезны.
Насчет шаблонов — реализация мнемоников в CR существует и для R#, только она является не встроенной возможностью, а сторонним решением, основанным на Live Template’ах. Иначе говоря, вы можете подгрузить XML-файл, который даст вам аналогичный функционал. Сам файл можно скачать тут.
Насчет документации к написанию плагинов – для R# она находится тут и постоянно обновляется. Сейчас ведется работа над полноценным SDK, который будет выпущен в самое ближайшее время.
Да, и для тех, кто хочет узнать побольше о возможностях R# есть например этот скринкаст, не говоря о доменно-специфичных скринкастах (правда на английском языке), которые тоже можно найти на jetbrains.tv.
Если есть еще вопросы, задавайте – по возможности отвечу.
Используете ли вы solution-wide analysis от R#? Если да, то в каких ситуациях?
SWA можно использовать где угодно, но один из самых полезных кейсов — это когда вы рефакторите существующую кодовую базу под новый API. В этом случае SWA дает вам возможность быстро передвигаться между разными 'breaking changes' в коде и фиксить их. Соответственно, процесс считается завершенным только тогда, когда кружок SWA стал зеленым.
Согласен мое сравнение довольно поверхностное. Сравнивал только то что часто использую.
На счет extract method. Основная идея extract method, чтобы быстро создать самодокументированный код. Если надо что-то большее то это затрагивает больший мыслительный процесс и соответсвенно легче сделать вручную, чем кликать галочки в модальном окне. Out параметров вообще по возможности стараюсь избегать, это ж не С++. Вообще хотелось бы поменьше хвататься за мышь, чтобы не развивать синдром запястного канала.
А вообще я всеми руками за R#. Просто не все такие гуру, чтобы сразу им проникнуться. Мой пост попытка просветить тех кто не пользуется, а не состязаться в знаниях R#.
На счет extract method. Основная идея extract method, чтобы быстро создать самодокументированный код. Если надо что-то большее то это затрагивает больший мыслительный процесс и соответсвенно легче сделать вручную, чем кликать галочки в модальном окне. Out параметров вообще по возможности стараюсь избегать, это ж не С++. Вообще хотелось бы поменьше хвататься за мышь, чтобы не развивать синдром запястного канала.
А вообще я всеми руками за R#. Просто не все такие гуру, чтобы сразу им проникнуться. Мой пост попытка просветить тех кто не пользуется, а не состязаться в знаниях R#.
в Visual Source Safe есть забавный подход — многие диалоги содержат галочку типа «показывать этот диалог следующий раз, только если при вызове будет нажат Shift». Думаю, подобная галочка в диалоге создания метода устроила бы karpach96 :)
По поводу создания метода из куска кода и модального окна — мне удобно в модальном окне задать новое имя функции. Это лучше чем получить автоматическое MainExtracted (судя по вашей картинке), с последующим переименованием и самого метода, и откуда он вызывается. И говорить про явный выигрыш CodeRush, несколько преждевременно.
Я бы на Вашем месте попробовал, очень удобно. Дело в том что оба способа имеют достоинства:
CodeRush — быстро, наглядно и без модальных окон скрывающих код
ReShaprer — больше возможностей по настройке (например сразу указать что метод приватный)
Было бы здорово иметь обе возможности в одном инструменте.
CodeRush — быстро, наглядно и без модальных окон скрывающих код
ReShaprer — больше возможностей по настройке (например сразу указать что метод приватный)
Было бы здорово иметь обе возможности в одном инструменте.
Это лучше чем получить автоматическое MainExtracted (судя по вашей картинке), с последующим переименованием и самого метода
Дело в том, что после выделения метода уже не требуется делать дополнительного вызова на rename. Если бы видео было чуть подробнее — то стало бы понятно, что после extract-а сгенеренное имя метода уже выделено, курсор стоит на нужном месте и достаточно лишь начать клавиатурный ввод, что б изменить имя на желаемое. Так что, рекомендую попробывать.
CodeRush редактирует их синхронно. Собственно, переименовать надо его только в одном месте. Я пользовался и ReSharper'ом, и CodeRush (правда было это 2 года назад). Второй мне как-то больше понравился, он как-то менее навязчив и приятен для глаз. Особенно понравилось, как CodeRush анимацией обращает внимание программиста на результат того, что программист просил сделать. Ничего подобного в ReSharper'е я тогда не увидел.
В CodeRush тоже есть Ctrl+Click только по умолчанию выключен «Click Identifier».
Картинки с кодом и формами в JPG — это ужасно. Пожалуйста, впредь используйте PNG.
Я года 5 пользуюсь ReSharper'ом, но есть моменты, которые меня не устраивают в 6 версии:
1. в mvc в cshtml файле иконка «карандаш» слева. Иногда хочешь выделить текст, а когда курсор находится слева, то появляется эта иконка и не дает выдделить
2. Find Usages(Alt+F7). Зачем сделали попап окно? В 5 версии все было нормально, а здесь если солюшен состоит из 20 проектов, то очень долго ищет, а ты сидишь и ждешь, когда все найдется
3. Intelsence для js, ну он у меня очень сильно тормозит, не нашел, можно ли только его отключить.
А вообще, я благодарен разработчикам ReSharper'а.
1. в mvc в cshtml файле иконка «карандаш» слева. Иногда хочешь выделить текст, а когда курсор находится слева, то появляется эта иконка и не дает выдделить
2. Find Usages(Alt+F7). Зачем сделали попап окно? В 5 версии все было нормально, а здесь если солюшен состоит из 20 проектов, то очень долго ищет, а ты сидишь и ждешь, когда все найдется
3. Intelsence для js, ну он у меня очень сильно тормозит, не нашел, можно ли только его отключить.
А вообще, я благодарен разработчикам ReSharper'а.
Мне одному кажется что кнопки «OK» и «Cancel» в менюшках быстрого поиска CodeRush являются атавизмом?
Sign up to leave a comment.
Сравнение DevExpress CodeRush и JetBrains ReSharper