Pull to refresh

Эволюция самого популярного инструмента любого разработчика (в Visual Studio)

Reading time 2 min
Views 11K
В любой среде разработки есть инструмент с названием «Output». Нет нужды описывать что он делает, поскольку абсолютно все разработчики его используют в своей работе ежедневно. Он прост и консервативен.

По сути не менялся десятилетиями и до этих пор выглядит как то так:


Текст, текст и еще раз текст. Много текста...

Даже в этом крошечном примере не сразу видно где строка с ошибкой. Для того чтобы это понять, нужно приложить усилия и потратить время. Просто потому что нужно читать текст и искать в нем слова “error”, “exception” или “warning”. Программисту искать, а заказчику платить за потраченное на это время.

Решение вопроса


Что если подсветить текст в таких сообщениях красным, а в случае с предупреждениями — желтым? Будет лучше. Так подумали авторы расширений VSColorOutput и Output Enhancer для Visual Studio (далее, для иллюстрации, будет использоваться эта IDE).

Получилось вот так:


Ошибки и предупреждения стали заметны без усилий со стороны разработчиков.
Отличная работа и благодарность за удобный инструмент.


Безусловно это облегчает жизнь программистам, но все равно этого как то мало. Информации выводится много, и среди этой информации есть бесполезная.

Например, зачем видеть список компилируемых файлов? Можно ли как то это спрятать?
Такой вопрос задал себе автор расширения Output Window Filter

Получилось вот так:


Результат стал меньше, разбираться с ним стало проще. К реализации есть вопросы, но идея замечательная.

Разработчики Microsoft также внесли свой вклад в эволюцию этого инструмента добавив в него временные метки. Для этого они создали расширение Time Stamp Margin.

Получилось следующее:


Стало удобнее. Теперь понятно когда и что выполнялось, а также сколько времени прошло между событиями.

Нерешенные проблемы


Все прекрасно, но есть проблема.

Эти замечательные расширения не могут работать совместно, дополняя достоинства друг друга. А более печально то, что на этом прогресс в готовых решениях остановился, оставив нерешенным ряд проблем.

Вот приблизительный список этих проблем:

1. Вместе с полезной информацией отображается и служебная;



2. Нет никакой визуализации однотипных сообщений;



3. Нет возможности искать и подсвечивать интересующие данные;

4. Не очевидно с каких сообщений возможен переход на исходный код;

5. Нет возможности быстро перейти к описанию ошибки;

6. При много-проектной компиляции не очевидно к какому проекту относятся сообщения;



7. Для длинных сообщений приходится использовать горизонтальный скролинг;

8. Отображение стек-трейса никак не оптимизировано;

9. Отсутствует возможность маскировки сообщений по типам (ошибки, предупреждения, сообщения).

Итоги


Не трудно заметить, что прогресса в улучшении данного инструмента давно не наблюдается. Десятилетиями важнейший инструмент остается неизменным, и лишь отдельные энтузиасты пытаются что то улучшить. Это и стало причиной появления расширения MetaOutput. В нем сделана попытка решить все указанные выше проблемы.



Что из этого получилось, можно посмотреть на примере:



Заключение


Не игнорируйте расширения к среде разработки. Там могут быть очень полезные инструменты, которые сберегут разработчикам огромное количество времени, а заказчикам много денег.
Тем более что практически все эти расширения абсолютно бесплатны.
Tags:
Hubs:
+26
Comments 84
Comments Comments 84

Articles