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

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

目次

Pythonで開発を進めると、コードスタイルの乱れや未使用変数、import整理の不足といった「ちょっとした問題」が積み重なり、品質や可読性に悪影響を与えることがあります。
そんなときに活躍するのが リンタ(Linter)フォーマッタ(Formatter) です。

本記事では、これらの基本的な役割から、近年注目を集めている 超高速ツール「Ruff」 の導入・設定方法、便利な使い方までを初心者向けにまとめます。

前提:リンタとフォーマッタ

リンタとは?

  • Lint = 綿埃(プログラム中の細かいゴミを見つけるイメージ)
  • リンタはコードを解析して「潜在的な問題」を検出するツール

例えば次のような問題を検出します:

  • 未使用の変数やimport
  • 行が長すぎるコード
  • 非推奨の書き方やバグの温床になりやすいパターン

代表的なライブラリとして Flake8pylint などがあります。

フォーマッタとは?

  • コードを自動整形して統一するツール
  • インデントや空白、改行位置を統一し、チーム全体で一貫性のあるスタイルを保つ

代表的なライブラリは Blackautopep8 など。

なぜリンタ & フォーマッタを使うのか?

  • レビューが「スタイル指摘」ばかりにならず、本質的なロジックに集中できる
  • バグの原因になりやすいコードを早期に検出できる
  • プロジェクト全体で統一されたコードスタイルを維持できる
  • 結果的に 開発効率が向上 し、チーム開発が快適に

従来の課題

これまでは複数のツールを組み合わせる必要がありました。

  • 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と組み合わせれば最強の開発環境!

👉 まずはプロジェクトで試してみましょう 🚀