Comments 11
О, интересно, JetBrains пошли по пути использования собственных инструментов, тогда как PVS выбрали Roslyn.
Время покажет, какой из вариантов окажется перспективнее.
Время покажет, какой из вариантов окажется перспективнее.
+1
JetBrains перспективнее, это любому понятно!
0
Евгений РыжковЭто что, вброс или крик души? :)
Работаю: PVS-Studio
+2
Это была неудачная шутка, поэтому если серьезно, то у разного подхода есть причины.
ReSharper работает с кодом, который только пишется, «на лету» его разбирая. И для ReSharper очень важно работать максимально быстро. PVS-Studio работает по-другому — мы проверяем полностью готовый файл. Плохо ли это? Нет, так как мы имея полный файл можем делать более мощный анализ. И при этом потратить на него чуть больше времени.
Ну а говорить какой вариант лучше смысла нет. Надо пробовать разные инструменты на своем конкретном проекте и смотреть, что больше понравится.
ReSharper работает с кодом, который только пишется, «на лету» его разбирая. И для ReSharper очень важно работать максимально быстро. PVS-Studio работает по-другому — мы проверяем полностью готовый файл. Плохо ли это? Нет, так как мы имея полный файл можем делать более мощный анализ. И при этом потратить на него чуть больше времени.
Ну а говорить какой вариант лучше смысла нет. Надо пробовать разные инструменты на своем конкретном проекте и смотреть, что больше понравится.
+5
И для ReSharper очень важно работать максимально быстро. PVS-Studio работает по-другому — мы проверяем полностью готовый файл. Плохо ли это? Нет, так как мы имея полный файл можем делать более мощный анализ. И при этом потратить на него чуть больше времени.
Разве решарпер не умеет анализировать полные файлы? Он все анализирует, и полные и неполные.
У решарпера, как я понимаю, основное преимущество перед рослином в том что структуры в памяти, которые решарпер строит, изменяемы. Поэтому он должен быть намного быстрее чем рослин (хотя я не думаю что кто-то проводил детальное сравнение по этому поводу). Для решарпера можно писать свои дополнения со своими inspections, хотя особого изобилия полезных дополнений не видно (возможно из-за того что существующих достаточно, а может jetbrains стоило бы как то стимулировать сообщество)
Решарпер кстати, можно запускать из командной строки, и эта утилита (resharper command line tools) вообще бесплатна.
Разве решарпер не умеет анализировать полные файлы? Он все анализирует, и полные и неполные.
У решарпера, как я понимаю, основное преимущество перед рослином в том что структуры в памяти, которые решарпер строит, изменяемы. Поэтому он должен быть намного быстрее чем рослин (хотя я не думаю что кто-то проводил детальное сравнение по этому поводу). Для решарпера можно писать свои дополнения со своими inspections, хотя особого изобилия полезных дополнений не видно (возможно из-за того что существующих достаточно, а может jetbrains стоило бы как то стимулировать сообщество)
Решарпер кстати, можно запускать из командной строки, и эта утилита (resharper command line tools) вообще бесплатна.
+1
Возможно ли при помощи Roslyn сделать анализ (возьмем для примера задачу подсчетам синтаксиса) не только для c#? для своего кастомного ЯП
0
Если для разбора и анализа кода использовать именно Roslyn API, то возможен только анализ C# и VB.
0
Ну, если цель — семантика, и преобразование 1:1 необязательно, то C-подобные языки можно аккуратненько транслировать в псевдо-C#. Минусы: поддержка своего транслятора. Плюсы: иногда это легко реализовать; за парсинг будет отвечать Roslyn; ну и fun.
0
«Следует помнить, что при анализе мы работаем с узлами, а не с объектами. Поэтому для получения информации, например, о типе объекта не сработают ни оператор is, ни метод GetType, так как они предоставляют информацию об узле, а не об объекте.» Может наоборот? —
так как они предоставляют информацию об объекте, а не оузле.
так как они предоставляют информацию об объекте, а не оузле.
0
Sign up to leave a comment.
Введение в Roslyn. Использование для разработки инструментов статического анализа