|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
Roslyn – платформа с открытым исходным кодом, разрабатываемая корпорацией Microsoft, и содержащая в себе компиляторы и средства для разбора и анализа кода, написанного на языках программирования C# и Visual Basic. Кроме этого она предоставляет разработчику различные мощные средства для разбора и анализа кода. Но наличия таких средств недостаточно, нужно понимать, что и для чего необходимо использовать. Статью можно разделить на 2 больших логических раздела: Общая информация про Roslyn. Обзор инструментов, предоставляемых им для разбора и анализа кода. Приводится как общее описание сущностей и интерфейсов, так и взгляд на них с точки зрения разработчика статического анализатора. Особенности, которые следует учитывать при разработке статических анализаторов. О том, как использовать Roslyn для разработки продуктов этого класса, что нужно учитывать при разработке диагностических правил, как их писать, пример диагностики и т.п. Данная статья несёт цель ответить на подобные вопросы. Помимо этого, будет рассказано об особенностях разработки статических анализаторов, использующих Roslyn API. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2016, 16:08 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
el_programmerнужно понимать, что и для чего необходимо использовать Вот как раз этого не понимаю, зачем это надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2016, 18:12 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
Cat2el_programmerнужно понимать, что и для чего необходимо использовать Вот как раз этого не понимаю, зачем это надо? ну можно например задать правила оформления кода, при не соблюдении которых он не будет компилироваться статический анализ это круто! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2016, 18:37 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
ЕвгенийВCat2пропущено... Вот как раз этого не понимаю, зачем это надо? ну можно например задать правила оформления кода, при не соблюдении которых он не будет компилироваться статический анализ это круто! Типа не написал комментарий в методе и все? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2016, 22:45 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
Cat2Типа не написал комментарий в методе и все? Типа если для отступов использовал не табы, а пробелы, то всё (это есть у меня такая мечта). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 03:11 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныCat2Типа не написал комментарий в методе и все? Типа если для отступов использовал не табы, а пробелы, то всё (это есть у меня такая мечта).святая инквизиция, скоро за пробелы будут на кол сажать =) ладно бы еще в Python'е, а в C# то за что? пофигу же ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 05:46 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
Roman Mejtesа в C# то за что? пофигу же Если пишешь не один - совсем не пофигу. При на стройке табовых отступов задается, какому количеству пробелов равен таб. Если весь код отформатирован табами, то все отступы нормальные и равномерные. Потом этот код берет человек, у которого настроены пробельные отступы, и отключено отображение whitespaces. Где-то он отступает 2 пробелами, где-то тремя, по умолчанию у него настроено 1 таб=4 пробела, он влезает в ранее написанный код, что-то правит с отступами в эти 4 пробела, коммитит. Берешь после всего этого код - и нормально отформатированный отступами код превращается в кашу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 06:14 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, есть же 100500 форматтеров ) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 06:26 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
Roman MejtesСон Веры Павловны, есть же 100500 форматтеров ) Ну да, и вместо того, чтобы писать код, сидишь, как дурак, и дергаешь эти форматтеры. Это несколько раздражает. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 07:20 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныRoman MejtesСон Веры Павловны, есть же 100500 форматтеров ) Ну да, и вместо того, чтобы писать код, сидишь, как дурак, и дергаешь эти форматтеры. Это несколько раздражает. Ну жа. Нажать Ctrl+K, Ctrl+D - офигенное раздражает! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 09:30 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныCat2Типа не написал комментарий в методе и все? Типа если для отступов использовал не табы, а пробелы, то всё (это есть у меня такая мечта). Как-то мелко для Roslyn :) Для этого есть StyleCop, StyleCop+ ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 09:38 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
skyANAКак-то мелко для Roslyn :) Для этого есть StyleCop, StyleCop+ А что не мелковато для Roslyn? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 10:14 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
ЕвгенийВskyANAКак-то мелко для Roslyn :) Для этого есть StyleCop, StyleCop+ А что не мелковато для Roslyn? ReSharper ^) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 10:24 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
Roman MejtesReSharper ^) Если ты заметил, та на этой странице эта тема помечена звездочкой! А это означает, что писать в теме можно только о хорошем! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 10:50 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
ЕвгенийВЕсли ты заметил, та на этой странице эта тема помечена звездочкой! А это означает, что писать в теме можно только о хорошем! Это у Вас она звездочкой помечена, как Избранное ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 11:24 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
ЕвгенийВskyANAКак-то мелко для Roslyn :) Для этого есть StyleCop, StyleCop+ А что не мелковато для Roslyn?Парсинг C# => DOM. зы: Странно, что это сделали только сейчас, а не ~16 лет назад. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 11:37 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
ЕвгенийВskyANAКак-то мелко для Roslyn :) Для этого есть StyleCop, StyleCop+ А что не мелковато для Roslyn? В статье же есть пример: PVS-Studio ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 11:42 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
Алексей КПарсинг C# => DOM. зы: Странно, что это сделали только сейчас, а не ~16 лет назад. Эрик об этом писал в конце 2010, работать видимо начали двумя-тремя годами ранее. Долго писали. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 11:46 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
Алексей КПарсинг C# => DOM. зы: Странно, что это сделали только сейчас, а не ~16 лет назад. А зачем это нужно? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 11:46 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
ЕвгенийВАлексей КПарсинг C# => DOM. зы: Странно, что это сделали только сейчас, а не ~16 лет назад. Эрик об этом писал в конце 2010, работать видимо начали двумя-тремя годами ранее. Долго писали.А первые дотнеты вышли в ~2000-м году вместе с кодогенерацией CodeDOM "из коробки". Не трудно было ещё тогда сделать парсер. А главное - поддерживать это всё в актуальном состоянии вместе с развитием C#/VB, чтобы не было множества описаний одного и того же: CodeDOM, LINQ Expression, теперь ещё и Roslyn. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 11:52 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
skyANAА зачем это нужно? Ну есть например большой начальника - тим лид, которые не пропустит скажем 10 ref/out параметров в методе, метод больше 100 строк или SQLConnection без using. Для этого он должен все просмотреть глазами, а тут можно сделать так, что такой код до него дойдет даже. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 12:12 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
Алексей КЕвгенийВпропущено... Эрик об этом писал в конце 2010, работать видимо начали двумя-тремя годами ранее. Долго писали.А первые дотнеты вышли в ~2000-м году вместе с кодогенерацией CodeDOM "из коробки". Не трудно было ещё тогда сделать парсер. А главное - поддерживать это всё в актуальном состоянии вместе с развитием C#/VB, чтобы не было множества описаний одного и того же: CodeDOM, LINQ Expression, теперь ещё и Roslyn. Ну это не одно и тоже! Roslyn - компилятор как сервис. LINQ Expression - деревья выражений которые можно создавать/изменять во время исполнения или которые могут использовать код стороннего программиста который даже еще не написан. CodeDOM - первое, что пришло в голову. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 12:18 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
ЕвгенийВskyANAА зачем это нужно? Ну есть например большой начальника - тим лид, которые не пропустит скажем 10 ref/out параметров в методе, метод больше 100 строк или SQLConnection без using. Для этого он должен все просмотреть глазами, а тут можно сделать так, что такой код до него дойдет даже. А при чём тут парсинг C# => DOM? Или я не понял, что Алексей имеет в виду? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 12:23 |
|
Введение в Roslyn. Использование для разработки инструментов статического анализа
|
|||
---|---|---|---|
#18+
ЕвгенийВАлексей Кпропущено... А первые дотнеты вышли в ~2000-м году вместе с кодогенерацией CodeDOM "из коробки". Не трудно было ещё тогда сделать парсер. А главное - поддерживать это всё в актуальном состоянии вместе с развитием C#/VB, чтобы не было множества описаний одного и того же: CodeDOM, LINQ Expression, теперь ещё и Roslyn. Ну это не одно и тоже! Roslyn - компилятор как сервис. LINQ Expression - деревья выражений которые можно создавать/изменять во время исполнения или которые могут использовать код стороннего программиста который даже еще не написан. CodeDOM - первое, что пришло в голову.Всё это вертится вокруг структуры данных, описывающей C#/VB программу - syntax tree. И этот syntax tree вполне мог бы быть стандартизован, и использоваться для различных задач: кодогенерация, парсинг, преобразование в другие языки, решение задач для IDE и т. п. Но не судьба. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2016, 12:28 |
|
|
start [/forum/topic.php?fid=20&msg=39239640&tid=1400589]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 148ms |
0 / 0 |