Pythonのコード品質管理を加速!Ruffによるリンタ&フォーマッタ入門ガイド

目次
Pythonで開発を進めると、コードスタイルの乱れや未使用変数、import整理の不足といった「ちょっとした問題」が積み重なり、品質や可読性に悪影響を与えることがあります。
そんなときに活躍するのが リンタ(Linter) と フォーマッタ(Formatter) です。
本記事では、これらの基本的な役割から、近年注目を集めている 超高速ツール「Ruff」 の導入・設定方法、便利な使い方までを初心者向けにまとめます。
前提:リンタとフォーマッタ
リンタとは?
- Lint = 綿埃(プログラム中の細かいゴミを見つけるイメージ)
- リンタはコードを解析して「潜在的な問題」を検出するツール
例えば次のような問題を検出します:
- 未使用の変数やimport
- 行が長すぎるコード
- 非推奨の書き方やバグの温床になりやすいパターン
代表的なライブラリとして Flake8 や pylint などがあります。
フォーマッタとは?
- コードを自動整形して統一するツール
- インデントや空白、改行位置を統一し、チーム全体で一貫性のあるスタイルを保つ
代表的なライブラリは Black や autopep8 など。
なぜリンタ & フォーマッタを使うのか?
- レビューが「スタイル指摘」ばかりにならず、本質的なロジックに集中できる
- バグの原因になりやすいコードを早期に検出できる
- プロジェクト全体で統一されたコードスタイルを維持できる
- 結果的に 開発効率が向上 し、チーム開発が快適に
従来の課題
これまでは複数のツールを組み合わせる必要がありました。
- Flake8(Lint)
- Black(Format)
- isort(Import 整理)
しかし、ツールが分散して設定が複雑、実行が遅い、CI整備が面倒…といった課題がありました。
Ruffとは?
- Rust 製の 超高速リンタ & フォーマッタ
- Flake8, Black, isort の機能を 1つに統合
- 特徴:
- 爆速(10〜100倍速)
- 自動修正機能が豊富
- VSCode との相性抜群
Ruffの基本的な使い方
インストール
pip install ruff
コマンド例
# 問題検出
ruff check .
# 自動修正
ruff check --fix .
# コード整形
ruff format .
サンプルコード
Ruff実行前のコード
import os, sys # 未使用/複合import
from math import sqrt, floor # floor未使用
def add(a,b): # 末尾に余計なスペースやカンマ等も入れてみる
return a + b
def hypotenuse(x, y):
return sqrt(x**2 + y**2)
print(add(1,2))
実行
ruff check --fix sample.py
ruff format sample.py
Ruff実行後のコード
from math import sqrt
def add(a, b):
return a + b
def hypotenuse(x, y):
return sqrt(x**2 + y**2)
print(add(1, 2))
→ 未使用インポート削除、空白やインデントを自動整形!
ルールの確認方法
Ruffには 800以上のルール が内蔵されています。
主なルール例:
- F401: 未使用import
- E501: 行が長すぎる
- I001: importの順序違反
確認方法:
ruff rule F401
公式ドキュメントの「Rules一覧」からも検索可能です。
おすすめ設定
pyproject.toml
[tool.ruff]
line-length = 100
[tool.ruff.lint]
extend-select = ["I", "D"] # Import 整理, Docstring
ignore = ["D100", "D101"] # Docstring必須系は外す
[tool.ruff.format]
docstring-code-format = true
line-length
は Black と揃える(88 or 100)extend-select
で便利ルールを追加ignore
でチームに合わないルールを外す
VSCode連携
VSCodeの拡張「Ruff」を入れれば保存時に自動修正できます。
.vscode/settings.json
{
"editor.formatOnSave": true,
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.codeActionsOnSave": {
"source.fixAll.ruff": "explicit",
"source.organizeImports.ruff": "explicit"
}
}
}
→ コードを書いて保存するだけで きれいなコードに!
チーム開発での活用
- pre-commitフックでコミット前に自動修正
- **CI/CD(GitHub Actionsなど)**で
ruff check
を実行 - コードスタイル論争を避け、本質的なレビューに集中できる
まとめ
- リンタ = 問題検出
- フォーマッタ = コード整形
- Ruff = 速い・便利・オールインワン
- 導入は簡単:
pip install ruff ruff check --fix . ruff format .
- VSCodeと組み合わせれば最強の開発環境!
👉 まずはプロジェクトで試してみましょう 🚀