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

В поисках хорошего стиля. Часть 2. Пишем свой линтер на Go для golangci-lint

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров576
Всего голосов 7: ↑7 и ↓0+8
Комментарии3

Комментарии 3

Если мы зашли в новый файл — очищаем стек.

А что, линтер в несколько потоков вызвать нельзя?

Да, в несколько потоков вызвать линтер не получится. Фреймворк golang.org/x/tools/go/analysis, на котором построен линтер, запускает анализатор один раз на весь пакет. То есть pass.Files содержит сразу все файлы, и они обрабатываются последовательно в рамках одного анализа. Конечно, можно было бы распараллелить обработку вручную, но тогда пришлось бы синхронизировать доступ к общим структурам и усложнять архитектуру. Пока в этом просто нет смысла — проверка порядка функций достаточно быстрая и больше локальна.

Я очень далек от того, чтобы давать советы по разработке на go, но если бы я был вами — я бы скачал исходный код докера и запустил ваш линтер на нём.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий