Я люблю Технологический радар от ThoughtWorks. Это повторяющиеся письменные размышления об инструментах, которые они используют. Например, в разделе Языки и фреймворки говорится, что они должны попробовать все существующие фреймворки JS. Это благородно. Мы не можем просто получать удовольствие от написания фреймворков. Кто-то должен их использовать.

В любом случае, я подумал, что если международная софтверная компания из 5000+ человек, которая существовала пару десятков лет, могла это сделать, то почему я не могла? Послушайте, я даже на три года старше этой компании.

Итак, в этом выпуске мы поговорим об IDE.

Год 2017, ОС Windows, стек .NET.

Визуальная студия

Visual Studio — это маленький русский городок, в котором вы выросли. Ты знаешь это, твои друзья здесь, ты знаешь интересные места, куда можно пойти (все двое). Вы здесь как дома. Теперь представьте себе иностранца, который только что прибыл. У него нет никаких воспоминаний об этом месте. Он никого не знает. Он видит город таким, какой он есть: он убогий. С инфраструктурой катастрофа. Линия, после которой окрестности начинают напоминать декорации антиутопического фильма «Бегущий по лезвию», проходит в непосредственной близости от центра города.

Вот список самых раздражающих вещей в VS, которые сразу пришли мне в голову:

  • Все время замерзает. Чтобы сделать CTRL+V в файле .aspx, требуется около 20+ секунд.
  • Он все время падает. Три раза в день — это хорошая нижняя оценка.
  • Он крадет мои ярлыки. Каждый раз, когда я открываю его, я вижу, что CTRL+X переназначается на что-то вроде Переключить комментарий к строке или Перейти к строке.
  • Пользовательский интерфейс для ярлыков и настройки цветов пришел прямо из 99-го. Вместе с предыдущим пунктом это заставило меня потратить многолетнюю память на такие вещи, как Edit.Cut, Resharper.LineComment и RunFromContext. И нет, нечеткого поиска нет. В 99-м он не был популярен.

Некоторые люди утверждают, что это медленно, потому что кодовая база огромна. Признаюсь, кодовая база, с которой я работаю, немаленькая. Однако это не так уж и много. В любом случае, версия VS для предприятий стоит 5999 долларов США в год. Подытожим: у него в названии Enterprise, он стоит в два раза дороже моей машины, и нет, он не подходит для огромных кодовых баз. Это больше для What’s your name? Hello, {name}! приложений.

Еще одна линия защиты — обвинить ReSharper в низкой производительности. Я не уверен, правда это или нет. Но я уверен, что причина, по которой я все еще использовал Visual Studio, заключалась в ее способности размещать ReSharper. И вот появился лучший хост.

Райдер

Познакомьтесь с Rider, C#/.NET IDE от JetBrains, создателей ReSharper. Это IntelliJ IDEA, которая может общаться с ReSharper. Мечта сбылась. Однако до сих пор я не хотел переходить на него. Он был еще сырым. И миграция — сложный процесс, даже если вы уверены, что вас ждут единороги.

В этот понедельник, после того как VS снова украл мой ярлык для Cut, я решил, что хватит. Я установил последнюю стабильную версию Rider (2017.2), настроил все возможные ярлыки и решил, что перейду на VS только в том случае, если Rider сожжет мой компьютер.

Неделя была потрясающей. Я заканчивал большую функцию, поэтому у меня была возможность работать как с C#, так и с JS, путешествовать по кодовой базе, добавлять/удалять/переименовывать файлы и т. д. Все было гладко. Единственным недостатком было то, что с тех пор, как моя IDE перестала зависать/зависать, я тратил гораздо меньше времени, чем обычно, на обсуждение геополитики и трендов биткойнов.

Мне все еще не хватает некоторых функций VS в Rider:

  • Интеграция с TeamCity не завершена: плагин для Rider существует, но он не так хорош, как версия VS. Он только показывает вам названия тестов, но не позволяет вам их запускать.
  • Пользовательские шаблоны проектов не поддерживаются: при создании нового проекта нам нужно сделать массу вещей. Установка правильного пространства имен, добавление необходимых ссылок и т. д. Итак, мы создали собственный шаблон проекта VS. Райдер их не поддерживает. У IDEA есть собственная функция шаблонов проектов, поэтому со временем они поддержат ее шаблоны.
  • Создание кода .aspx.designer.cs не работает: оно не требуется слишком часто, и вы можете сделать это вручную. Есть запрос на функцию, но я не думаю, что они в восторге от этого, поскольку сейчас 2017 год, и никому нет дела до WebForms, если только это не плагин для React.

Эти функции гораздо менее важны, чем функция «не зависать и не падать в течение длительных непрерывных периодов времени», которой явно не хватает в VS.

Код ВС

Этот маленький парень потрясающий. Помню, когда я впервые услышал об этом, я подумал, что Microsoft просто разветвила Atom и заменила иконку. Раньше я игнорировал это.

Я слышал, как люди хвалили его, но думал, что они сторонники Microsoft. Именно Подкаст Веса Боса убедил меня попробовать. Это была любовь с первого взгляда. VS Code — это Atom, сделанный правильно: UX лучше, производительность (воспринимаемая) лучше, экосистема плагинов лучше, поддержка C# лучше.

Я использую его для сторонних проектов, и это просто фантастика. Я был бы рад сделать его своим единственным редактором и хорошо им пользоваться. Оказалось невозможным, потому что VS Code не поддерживает классический .NET. Давайте посмотрим, почему:

Из-за этого фокуса многие стандартные типы проектов C# не распознаются VS Code. Примером неподдерживаемого типа проекта является приложение ASP.NET MVC (хотя ASP.NET Core поддерживается). В этих случаях, если вы хотите иметь легкий инструмент для редактирования файла, вам поможет VS Code. Если вам нужны наилучшие возможности для этих проектов и разработки для Windows в целом, мы рекомендуем вам использовать Visual Studio Community.

"источник"

Я чувствовал себя преданным, когда читал это. VS тратит 20 секунд на выполнение одной команды CTRL+V. Конечно, в вечности космоса есть опыт и похуже этого. Однажды я обедал и чуть не проглотил гвоздь, который был внутри бублика. Я думаю, что, возможно, это был худший опыт, чем опыт, который дает вам VS. Впрочем, не намного хуже.

План таков:

  • придерживаюсь VS Code столько, сколько смогу
  • использовать Rider для своей повседневной работы, если только VS Code не начнет поддерживать классический .NET
  • оставьте Visual Studio на некоторое время и открывайте ее только для таких задач, как добавление нового проекта в решение или демонстрация моим внукам, насколько медленным может быть текстовый редактор