ДЛЯ НОВИЧКОВНЕ ДЛЯ НОВИЧКОВНЕ ОБЯЗАТЕЛЬНОВ РАЗРАБОТКЕ
Линтеры — статические анализаторы исходного кода, предназначенные для выявления стилистических нарушений, потенциальных ошибок, несоответствий принятым соглашениям и уязвимостей на ранних этапах разработки. В отличие от компиляторов, линтеры не требуют запуска программы и могут интегрироваться в редакторы кода, системы контроля версий и CI/CD-конвейеры.
Ниже приведён перечень линтеров по языкам и технологиям с кратким описанием и способами установки.
1. Универсальные / мультиязычные линтеры
2. JavaScript / TypeScript
| Инструмент | Описание | Установка |
|---|
| ESLint | Стандарт де-факто для JS/TS, поддержка плагинов и кастомных правил | npm install eslint --save-dev |
| TSLint | Устаревший линтер для TypeScript (заменён ESLint + @typescript-eslint) | Не рекомендуется к новому использованию |
| JSHint | Более простой и строгий, чем ESLint | npm install jshint --save-dev |
| StandardJS | Пресет ESLint без конфигурации | npm install standard --save-dev |
| Prettier | Форматтер, часто используется в связке с ESLint | npm install prettier --save-dev |
3. Python
| Инструмент | Описание | Установка |
|---|
| Pylint | Полнофункциональный линтер с проверкой стиля, ошибок и архитектуры | pip install pylint |
| Flake8 | Комбинация PyFlakes, pycodestyle и mccabe | pip install flake8 |
| Ruff | Высокопроизводительная альтернатива Flake8, isort и pyupgrade | pip install ruff |
| Black | Форматтер (не линтер в строгом смысле, но часто используется в CI) | pip install black |
| mypy | Статическая проверка типов | pip install mypy |
| Bandit | Поиск уязвимостей безопасности | pip install bandit |
4. Java
5. C#
| Инструмент | Описание | Установка / Ссылка |
|---|
| Roslyn Analyzers | Встроенные и кастомные анализаторы на основе Roslyn | Включены в .NET SDK; можно расширять через NuGet |
| StyleCop | Проверка стиля кода по правилам Microsoft | NuGet: dotnet add package StyleCop.Analyzers |
| SonarAnalyzer.CSharp | Анализатор от SonarSource | NuGet: dotnet add package SonarAnalyzer.CSharp |
| EditorConfig + IDE | Стандарт .editorconfig поддерживается Visual Studio и Rider | Создание файла .editorconfig в корне проекта |
6. C / C++
| Инструмент | Описание | Установка |
|---|
| Clang-Tidy | Статический анализ и рефакторинг кода | Входит в LLVM; apt install clang-tidy |
| Cppcheck | Лёгкий статический анализатор | apt install cppcheck или https://cppcheck.sourceforge.io |
| PC-lint / PC-lint Plus | Коммерческий линтер от Gimpel Software | https://www.pclintplus.com |
| OCLint | Анализатор для Objective-C, C, C++ | http://oclint.org (разработка приостановлена) |
7. Go
| Инструмент | Описание | Установка |
|---|
| golint | Официальный линтер (устарел) | Не рекомендуется |
| staticcheck | Современный и мощный статический анализатор | go install honnef.co/go/tools/cmd/staticcheck@latest |
| golangci-lint | Мета-линтер: объединяет 50+ анализаторов | go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest |
| revive | Быстрая и настраиваемая замена golint | go install github.com/mgechev/revive@latest |
8. Ruby
| Инструмент | Описание | Установка |
|---|
| RuboCop | Стандартный линтер и форматтер | gem install rubocop |
| reek | Поиск «запахов» кода (code smells) | gem install reek |
| brakeman | Анализ безопасности Rails-приложений | gem install brakeman |
9. PHP
| Инструмент | Описание | Установка |
|---|
| PHP_CodeSniffer | Проверка стиля кода (PSR и др.) | composer require --dev squizlabs/php_codesniffer |
| PHPStan | Статический анализ без запуска кода | composer require --dev phpstan/phpstan |
| Psalm | Альтернатива PHPStan с поддержкой типов | composer require --dev vimeo/psalm |
| PHPMD | Анализ «запахов» кода | composer require --dev phpmd/phpmd |
10. Shell / Bash
| Инструмент | Описание | Установка |
|---|
| ShellCheck | Линтер для shell-скриптов | apt install shellcheck или brew install shellcheck |
| shfmt | Форматтер (часто используется вместе) | go install mvdan.cc/sh/v3/cmd/shfmt@latest |
11. SQL
| Инструмент | Описание | Установка / Ссылка |
|---|
| sqlfluff | Линтер и форматтер SQL с поддержкой диалектов | pip install sqlfluff |
| pgFormatter | Форматтер для PostgreSQL | https://github.com/darold/pgFormatter |
| SQLCheck | Выявление антипаттернов в SQL | pip install sqlcheck |
12. Конфигурационные и разметочные форматы
| Формат / Язык | Линтер | Установка |
|---|
| YAML | yamllint | pip install yamllint |
| JSON | jsonlint | npm install -g jsonlint |
| TOML | taplo | cargo install taplo-cli |
| Dockerfile | hadolint | docker run --rm -i hadolint/hadolint < Dockerfile или brew install hadolint |
| Markdown | markdownlint-cli | npm install -g markdownlint-cli |
| HTML | htmlhint | npm install -g htmlhint |
| CSS / SCSS | stylelint | npm install stylelint --save-dev |
13. Интеграция в редакторы и CI
- Visual Studio Code: расширения ESLint, Pylint, RuboCop и др.
- Vim / Neovim: через ALE, coc.nvim или null-ls.
- Pre-commit: https://pre-commit.com — запуск линтеров перед коммитом.
- GitHub Actions: шаблоны типа
super-linter, reviewdog, или вызов напрямую (npm run lint, ruff check . и т.п.).
Все перечисленные инструменты являются свободно доступными, большинство — с открытым исходным кодом. При выборе линтера рекомендуется:
- учитывать поддерживаемый язык и его версию,
- обеспечивать согласованность правил в команде через конфигурационные файлы (
.eslintrc, pyproject.toml, .rubocop.yml и др.),
- интегрировать проверки на ранних этапах разработки (IDE → pre-commit → CI).