Как стать автором
Обновить

ruleguard: динамические проверки для Go

Open source *Совершенный код *Компиляторы *Go *Управление разработкой *


В этой статье я расскажу о новой библиотеке (и утилите) статического анализа go-ruleguard, которая адаптирует gogrep для использования внутри линтеров.


Отличительная особенность: правила статического анализа вы описываете на особом Go-подобном DSL, который на старте ruleguard превращается в набор диагностик. Возможно, это один из самых легко конфигурируемых инструментов для реализации кастомных инспекций для Go.


В качестве бонуса, мы поговорим об go/analysis и его предшественниках.

Читать дальше →
Всего голосов 21: ↑19 и ↓2 +17
Просмотры 4.7K
Комментарии 16

gogrep: структурный поиск и замена Go кода

Open source *Проектирование и рефакторинг *Go *Софт

gogrep — это одна из моих любимых утилит для работы с Go. Она позволяет находить код по синтаксическим шаблонам, фильтровать результаты по типам выражений, а также выполнять замену (тоже по шаблону).


В этой заметке я расскажу как использовать gogrep, а также о VS Code расширении для более удобной работы с gogrep прямо из редактора.


Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Просмотры 5K
Комментарии 2

gocorpus: открытый корпус Go кода, поддерживающий запросы

Open source *Программирование *Go *

На днях я запустил wasm-приложение, которое позволяет запускать gogrep шаблоны на относительно крупном корпусе Go кода (~11 миллионов строк кода).


В этой заметке я напишу как этим пользоваться и зачем оно вообще может быть нужно.


Звёздочки нести сюда Исходный код можно найти здесь.


Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Просмотры 4K
Комментарии 4

profile-guided поиск по коду

Высокая производительность *Open source *Программирование *Go *Управление разработкой *

Если объединить структурный поиск по коду через gogrep и фильтрацию результатов через perf-heatmap, то мы получим profile-guided поиск по коду.


Данная комбинация позволяет находить все совпадения по шаблону поиска, а затем показывает только те результаты, что лежат на "горячем" пути исполнения.


Через perf-heatmap также можно аннотировать файл с учётом того, насколько строка исходного кода "горячая".


Читать дальше →
Всего голосов 20: ↑18 и ↓2 +16
Просмотры 1.9K
Комментарии 0