Догадываюсь, что вопрос затерли до дыр, аж профильный форум создали. Но вопрос (для меня) остается открытым.
У меня было несколько таких кейсов:
— Устраиваюсь в солидную контору на высокий рейт. Интервью. После задачки на перекладывание из массива в массив, летит вопрос "Do you use ReSharper?", с повелительной интонацией. Я замялся, сказал что стоит в студии (что отключен всегда — не стал говорить). Затем работая в этой конторе, в документациях типа "как развернуть у себя среду для тестирования" — первым пунктом идет — "Установите ReSharper". Не устанавливал. Все развернул, недоумеваю.
— Кейс #2. Взяли лидом в команду из 25 человек. И дня не прошло, чтобы кто-нибудь из них не заныл — "Я без решарпера, как без рук! Купить мне лицензию наконец...ААА!". Недоумеваю. Спрашивать причины воя не стал, дабы сохранить дружный коллектив.
— Еще несколько случаев, в том числе в публичных интервью и блог-постах уважаемых людей пишут, что ReSharper — must have, а без него — студия — это текстовый редактор. Так то.
У меня вопрос. Я сижу в студии с версии 6.0, года так с 2001-го. Ставил все версии. Сейчас на 2019. У меня в голове не укладывается, что там можно сделать такого, чего сама студия не может??
Я ставил, смотрел: сразу появилась куча всякой дополнительной мишуры в редакторе, время загрузки студии увеличилось, в целом тормоза. Привычные Хоткеи перебиваются и начинается какая-то вакханалия вместо стандартных окон.
Захожу в Tools->Extensions, нажимаю Disable, чисто на случай если всплывет какая-то киллер фича, которая в разы ускорит разработку и этого не будет в самой VS.
Здравствуйте, ukrspecs, Вы писали:
U>Чего я не понимаю в мире разработки на C#?
Вы наверное сразу всё делаете правильно, а потом не переделываете никогда. И всё помните. Вам ни Find Usages не нужен, ни переразбивка проекта на части и неймспейсы, ни создание интерфейса для какого-нибудь класса на 50 методов (фасада к куче других сервисов, а интерфейс нужен для создания кэширующей прослойки).
Здравствуйте, vorona, Вы писали:
V>Это все есть в студии
Согласен. Часто решарпер хвалят за умелый Find Usages, но в студии в большинстве случаях мне хватает Find All References/Go To Implementation.
Эта парочка пасует только в случае, если надо провалиться в метод, реализованный в неизвестном производном классе:
func(IBaseObject obj)
{
// Вот здесь не получается дает провалиться в реализацию ToString(), потому что студия не может определить,
// экземпляр какого именно конкретного класса был передан в метод
obj.ToString();
}
По этой причине особенно тяжело разбираться в проектах, где широко используются IoC контейнеры.
Но там и решарпер не поможет.
Здравствуйте, ukrspecs, Вы писали:
U>Но вопрос (для меня) остается открытым.
Брат, ты не один! Решарпер действительно БЫЛ когда-то полезным дополнением (напр, к студии 2005), потому что саму студию писали посредственности. Но сейчас, за годы улучшений, Студия получила кучу плюшек и теперь Решарпер в ней как пятое колесо — ничего, кроме тормозов не привносит.
Так что да, всех "решарпистов" можешь посылать прямиком в ЖетБрынзу: "Ребят, любой каприз за ваши деньги!". Сами купят, сами помучаются, сами понесут обратно.
Здравствуйте, Kolesiki, Вы писали:
K>Брат, ты не один! Решарпер действительно БЫЛ когда-то полезным дополнением (напр, к студии 2005), потому что саму студию писали посредственности. Но сейчас, за годы улучшений, Студия получила кучу плюшек и теперь Решарпер в ней как пятое колесо — ничего, кроме тормозов не привносит.
Без Решарпера в студии 2019 можно обойтись. По крайней мере, на небольших проектах. Но вот касательно улучшений... Я как-то жаловался на неработающий XML Schema Explorer. По сообщениям, его обещали починить в версии 16.4. У меня сейчас 16.4.3, а он как не работал, так и не работает. Точнее, я однажды сделал студии repair, после чего мне удалось его запустить. Но после того, как я закрыл студию, а потом снова открыл, он снова объявил забастовку. Мне теперь что, каждый раз перед открытием схемы repair делать?
Толку с тех плющек, если они работают через нее (если вообще работают).
Здравствуйте, ukrspecs, Вы писали:
U>Чего я не понимаю в мире разработки на C#?
Он нужен этим супер-продуктивным чувакам, вываливающим горы кода каждый день, у которых каждый метод вызывает другой метод, который вызывает другой метод и так далее, три страницы установки значений свойствам в каждом классе и прочие непотребности, которые руками лабать утомительно.
Студия одинаково тормозит на таком коде что с Решарпером, что без Решарпера, поэтому тормозов Решарпера они не замечают.
Здравствуйте, ukrspecs, Вы писали:
U>Чего я не понимаю в мире разработки на C#?
Кстати, для С++ также. Я выиграл лицензию на конференции, поставил себе и дальше всё как у тебя: всё мигает, мограет, пёстро, хоткеи не работают, тормоза, IDE почему-то перестало видеть инклуды к ffmpeg (компилятор видит). Немножко помучался, удалил и всё. Проект кроссплатформенный под Windows я работаю в MS VS, под Линуксом в QtCreator, все проекты на CMake. Вернулся к привычным инструментам.
Здравствуйте, ukrspecs, Вы писали:
U>Чего я не понимаю в мире разработки на C#?
Решарпер интересен не синтаксисом, интеллисенсом, навигацией или тестовой средой. Это все второстепенное.
Основное — в нем очень продвинутый рефакторинг. Настолько крутой, что можно писать код не в терминах "строчка, еще строчка", а работать в терминах парадигмы.
Это позволяет модифицировать и окультуривать ненужный, лишний, устаревший, неоптимальный код сохраняя сильные гарантии работоспособности.
Например, есть запутаный метод килобайт около 500, понятный одному автору на момент написания, да и то, автор уволился. Разрабы вплоть до сеньора боятся туда лезть, ни тестов, ни документации, ничего.
Как быть?
Вот представь кейс, когда внутренности этого метода надо отдать наружу в виде внятного АПИ. Решарпер позволяет решать такие задачи намного эффективнее, нежели переписывать с нуля.
Например, возможный подход — конвертируем метод в класс, режем на кусочки, двигая по иерархии, перемещаем методы между классами, выделяем интерфейсы, унифицируем, вытесняем лишнее в экстеншны, вводим чтото навроде дсл и все это в принципе без набора какого либо существенного количества кода руками.
Еще и тесты появятся сами собый, как побочный эффект.
Особо умные конечно намекают: "А зачем такое было писать?" Странно, но когда этот код кем то создавался и протухал, прокисал годами, такие вопросы не интересовали Почему ?
Здравствуйте, Vladek, Вы писали:
V>Он нужен этим супер-продуктивным чувакам, вываливающим горы кода каждый день, у которых каждый метод вызывает другой метод, который вызывает другой метод и так далее, три страницы установки значений свойствам в каждом классе и прочие непотребности, которые руками лабать утомительно.
Уже давно проверено, что эти супер-продуктивные чуваки вываливают почти столько же в обычном текстовом редакторе. Просто врайт-онли код пишется крайне быстро.
Нет никакой проблемы ускорить написание в десятки раз в ущерб сопровождению.
Любой код имеет цикл жизни — пишем, осмысливаем, адаптируем новые требования, фиксим баги и так много раз по кругу пока сохраняется экономическая целесообразность.
Рефакторинг нужен для того, что бы управлять этим циклом жизни кода. В противном случае всё будет в ущерб майнтенансу — трудозатраты все больше и больше, пока это не перестаёт быть экономически эффективным. При чем эффект нарастает лавиной. Пока есть деньги — можно компенсировать разрабами. Но это не на долго. А вот переписывание с нуля обычно даёт жосцкий фейл,или, в лучшем случае, те же проблемы, но в профиль.
Здравствуйте, Слава, Вы писали:
U>>Чего я не понимаю в мире разработки на C#?
С>Вы наверное сразу всё делаете правильно, а потом не переделываете никогда. И всё помните. Вам ни Find Usages не нужен, ни переразбивка проекта на части и неймспейсы, ни создание интерфейса для какого-нибудь класса на 50 методов (фасада к куче других сервисов, а интерфейс нужен для создания кэширующей прослойки).
Скорее товарищ имеет дело только со свежим кодом и в основном своим или своей команды.
Здравствуйте, Kolesiki, Вы писали:
U>>Но вопрос (для меня) остается открытым.
K>Брат, ты не один! Решарпер действительно БЫЛ когда-то полезным дополнением (напр, к студии 2005), потому что саму студию писали посредственности. Но сейчас, за годы улучшений, Студия получила кучу плюшек и теперь Решарпер в ней как пятое колесо — ничего, кроме тормозов не привносит.
Узнаю разработчика-одиночку c идеальной памятью, который реализует закат солнца вручную
Здравствуйте, Ikemefula, Вы писали:
I>Решарпер интересен не синтаксисом, интеллисенсом, навигацией или тестовой средой. Это все второстепенное. I>Основное — в нем очень продвинутый рефакторинг.
Можешь написать из своего опыта, каких именно рефакторингов не хватает в студии?
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, ukrspecs, Вы писали:
U>>Чего я не понимаю в мире разработки на C#?
I>Особо умные конечно намекают: "А зачем такое было писать?" Странно, но когда этот код кем то создавался и протухал, прокисал годами, такие вопросы не интересовали Почему ?
Это какой-то абстрактный кейс, который в любом случае должен звучать иначе "лошадь двигает телегу, а не наоборот". Т.е. в любом случае, разбивать, вычленять и рефакторить нужно своей головой. То что вместо Ctrl+X — Ctrl+V и еще пары хоткеев, я кликну правой кнопкой мыши и мне вывалится новый класс и методы...ну оно того не стоит.
В общем нет сегодня весомых аргументов в пользу Решарпера. А те кто на него давно подсел, уже по инерции вырубают хоткеи студии и даже не смотрят что в ней нового.
На реальном проекте, это превращается в дикую попоболь, когда менеджеры зажимают бюджет на недешевую лицензию решарпера.