Инструменты C# для тех, у кого нет времени на кодинг

15.04.2021

Инструменты C# для тех, у кого нет времени на кодинг

Набор инструментов C#, которыми пользуется разработчик, может сильно меняться в зависимости от специфики задачи: разработки сайта, приложения, сервиса или создания библиотеки. На выбор инструментов также влияет тип операционной системы, в которой ведётся разработка. Есть условно универсальные — для разных ОС, есть такие, которые подходят только для одной системы, и для другой придется подыскивать альтернативный инструмент.

В «Аэроклуб ИТ» мы разрабатываем web-сервисы и MVC-приложения для TravelTech. Клиенты компании — корпорации с десятками тысяч сотрудников, которые до карантина организовывали по 50 тысяч командировок в месяц. Одна из наших задач — разработка сервисов, которые поддерживают высокий уровень обслуживания. В том числе через автоматизацию и цифровизацию процессов. Например, робот, который принимает и анализирует входящие почтовые сообщения и автоматически преобразует их в формализированные заявки для агентства, — та работа, которую раньше приходилось проводить вручную.

Другой наш продукт — «корпоративный рейтинг отелей». Это сервис, который собирает отзывы по отелям среди сотрудников одной компании, анализирует их и на основе этого составляет и настраивает кастомизированные рекомендации для сотрудников этой компании-клиенте. В основном приложения создаются для ОС Windows.

Обычно я одновременно курирую работу сразу пяти проектов, поэтому львиную долю времени отнимают организационные моменты, менеджмент процессов, распределение задач и контроль их выполнения. На разработку остаётся не больше 10% времени. Поэтому при выборе инструментов для разработки я, в первую очередь, отдаю предпочтение тем из них, которые позволяют максимально экономить ресурсы — время и силы. Это могут быть самые базовые инструменты. Рассмотрю наиболее часто используемые, все они бесплатны:

MS Visual Studio Community

MS Visual Studio Community — бесплатная версия, но функциональности вполне достаточно для продуктивной работы в небольших командах по 5-7 человек.

Visual Studio Code

Visual Studio Code — используется реже, прежде всего для быстрого просмотра больших проектов на слабых машинах (на ноутбуке, например). Есть поддержка IntelliSense, существует огромное множество расширений для C#, Web-разработки, Git и так далее Но даже при столь широком функционале она остаётся достаточно легкой.

dotPeek

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

Рассмотрим ситуацию, которая несколько раз случалась в нашей компании. Разработчик внёс изменения в ASP.MVC-приложение и выпустил релиз новой версии (собирал релизную ветку и опубликовал изменения через TeamCity). Однако после релиза часть пользователей не видела изменения. Необходимо было найти ошибку и исправить её так, чтобы все пользователи имели доступ к обновленной версии.

Сначала мы проверили ошибки в логах публикации — их не было. Приложение находится за балансировщиком нагрузки и развёрнуто на нескольких серверах. После просмотра папок с приложением на всех серверах причину ошибки удалось обнаружить. Если бы все сборки в приложении подписывались, можно было бы определить сборку по версии или альтернативным вариантом через анализ содержимого dll в приложении dotPeek. Собственно, для этого подобный инструмент и нужен: он в два клика помогает определить содержимое сборки и не тратить на это уйму времени.

regex101.com

regex101.com — просто необходимая утилита для отладки Regex-шаблонов. Позволяет понять, почему тот или иной шаблон не работает, получить справку по специальным символам. Например, есть текст, из которого нужно достать адреса e-mail — строку с наличием спецсимвола @ и обозначением домена, для этого требуется Ragex-шаблон, который эти символы выделяет и читает.

cmder.net

cmder.net — очень удобный консольный эмулятор с широкими возможностями по кастомизации. Пользоваться стандартной консолью Windows очень неудобно, начиная от управления подсветкой и заканчивая вставкой значений. Поэтому несколько лет подряд мы с командной успешно использовали для этих целей cmder. В настоящее время у него появился очень серьезный конкурент в лице Terminal Windows.

LinqPad

LinqPad — небольшая бесплатная программа, позволяющая быстро выполнить любой кусок кода, отладить запрос через Linq к различным источникам данных. Этот инструмент позволяет значительно экономить время. К примеру, вы открываете большое приложение и видите кусок кода, который вызывает сомнения. Вы можете пойти несколькими путями для его отладки:

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

Самый быстрый способ — последний, он же самый удобный, особенно если требуется доступ к базе данных.

WinDbg

WinDbg — мощный отладчик приложений. Предположим, что в процессе работы приложение периодически «падает». Сервер можно сконфигурировать так, чтобы при «падении» приложения создавался dump-файл. Этот файл можно анализировать при помощи различных средств, как платных, так и бесплатных, в том числе Visual Studio и WinDbg. Последний обладает не самым простым интерфейсом, но попробовать его в деле стоит. Хотя бы для расширения кругозора.

Process monitor

Process monitor — приложение, позволяющее отслеживать происходящее в системе в данный момент времени. Какие файлы использует приложение, что оно пишет в реестр, какие процессы запускает. Process monitor позволяет анализировать все эти аспекты. В некоторых случаях это просто незаменимая вещь.

***

Использование простых утилит для оптимизации работы — это отличное решение в ситуации, когда времени на самостоятельную разработку нет, но такая необходимость существует. Конкретно этот список составлен на основе 10 лет опыта активной разработки. Безусловно, в процессе работы у каждого разработчика формируется свой набор любимых инструментов. Но поскольку все перечисленные в моем списке утилиты бесплатные, они могут стать базовым набором, как минимум, для начинающего разработчика.

Бонус: ссылка на большое количество полезных утилит на все случаи жизни.

— Вадим Кошелев, заместитель директора департамента по разработке программного обеспечения «Аэроклуб ИТ»


Источник: TProger


Июнь 2021
ПнВтСрЧтПтСубВс
31
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
01
02
03
04
выбрать даты публикаций