Линтеры

Линтер анализирует исходный код без запуска: стиль, подозрительные конструкции, часть уязвимостей. Форматтер (Prettier, Black) приводит отступы и кавычки к единому виду — часто запускают вместе с линтером. Цель — ловить проблемы в IDE и на pre-commit, а не только в CI.

В команде

- Один конфиг в репозитории: `.eslintrc`, `pyproject.toml` (Ruff), `.golangci.yml`.

- pre-commit.com — хуки перед коммитом.

- В CI: `npm run lint`, `ruff check .`, `golangci-lint run`.


Универсальные

Инструмент Описание
SonarLint Подсказки в IDE, 30+ языков
Semgrep Правила безопасности в YAML
CodeQL Семантический анализ (GitHub)
MegaLinter / Super-Linter Агрегаторы для CI

JavaScript / TypeScript

Инструмент Примечание
ESLint Стандарт, плагины, flat config
Prettier Форматирование (часто с eslint-config-prettier)
StandardJS Мнение без конфига
TSLint Устарел → @typescript-eslint

Python

Инструмент Роль
Ruff Быстрая замена Flake8 + isort + части pyupgrade
Pylint Глубокий анализ, архитектура
Flake8 Классика (pycodestyle + pyflakes)
Black Форматтер
mypy Статическая типизация
Bandit Безопасность

Java, C#, Go, C++

Язык Инструменты
Java Checkstyle, PMD, SpotBugs, Error Prone
C# Roslyn Analyzers, StyleCop, SonarAnalyzer
Go golangci-lint, staticcheck, revive
C/C++ Clang-Tidy, Cppcheck

Ruby, PHP, Shell

Язык Инструменты
Ruby RuboCop, reek, brakeman
PHP PHP_CodeSniffer, PHPStan, Psalm
Shell ShellCheck, shfmt

Конфиги и разметка

Формат Линтер
YAML yamllint
JSON jsonlint
Dockerfile hadolint
Markdown markdownlint-cli
CSS stylelint
SQL sqlfluff

Интеграция

  • VS Code / Cursor — расширения ESLint, Ruff, Go.
  • Vim/Neovim — ALE, null-ls, coc.nvim.
  • GitHub Actions — отдельный job lint или Super-Linter.

Выбирайте линтер под версию языка в проекте и зафиксируйте правила в репозитории — иначе каждый разработчик будет "чинить" чужой стиль в diff.


См. также