Линтеры
Линтер анализирует исходный код без запуска: стиль, подозрительные конструкции, часть уязвимостей. Форматтер (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.
См. также
- Тесты
- Культура кода — о разделе — стиль, ревью, статический анализ
- DevOps и CI/CD — job
lintв пайплайне