コードフォーマットとツール
コードの品質を向上するツール。
Black
Pythonコードフォーマッタ。
Ruff
高速なLinter/フォーマッタ。
mypy
静的型チェッカー。
フォーマッタ
コードのスタイルを統一するツール。
Linter
コードの問題を検出するツール。
型チェッカー
型のエラーを検出するツール。
pre-commit
コミット前に自動実行されるフック。
CI
継続的インテグレーション。
Black
なぜBlackが必要か?
Blackは、コードスタイルを統一するのに適しています。これにより、コードレビューの効率を向上できます。
いつ使うか?
- コードスタイルを統一する場合
- PEP 8に準拠する場合
- コードレビューの効率を向上する場合
- チーム開発を行う場合
実践テクニック
pre-commitフックを使う
pre-commitフックを使うことで、コミット前に自動的にフォーマットできます。これにより、コードスタイルの一貫性を保てます。
CIパイプラインに統合する
CIパイプラインに統合することで、プルリクエスト時に自動的にフォーマットをチェックできます。これにより、コード品質を向上できます。
# Blackの基本# コードのフォーマットblack main.py
# ディレクトリ全体のフォーマットblack src/
# 差分を表示black --diff main.py
# チェックのみ(変更しない)black --check main.pyRuff
なぜRuffが必要か?
Ruffは、高速なLintとフォーマットをするのに適しています。これにより、開発効率を向上できます。
いつ使うか?
- 高速なLintを行う場合
- 高速なフォーマットを行う場合
- 大規模なプロジェクトを開発する場合
- CI/CDパイプラインを最適化する場合
実践テクニック
設定ファイルを使う
設定ファイルを使うことで、Lintルールをカスタマイズできます。これにより、プロジェクトに適したルールを適用できます。
Blackと併用する
Blackと併用することで、Lintとフォーマットを分離できます。これにより、役割分担を明確にできます。
# Ruffの基本# Lintの実行ruff check main.py
# 自動修正ruff check --fix main.py
# フォーマットruff format main.py
# ディレクトリ全体のLintruff check src/mypy
なぜmypyが必要か?
mypyは、型のエラーを早期に発見するのに適しています。これにより、コードの品質を向上できます。
いつ使うか?
- 型のエラーを早期に発見する場合
- 型アノテーションを使用する場合
- 大規模なプロジェクトを開発する場合
- チーム開発を行う場合
実践テクニック
厳格なモードを使う
厳格なモードを使うことで、より厳しく型チェックできます。これにより、型のエラーを徹底的に検出できます。
設定ファイルを使う
設定ファイルを使うことで、型チェックのルールをカスタマイズできます。これにより、プロジェクトに適したルールを適用できます。
# mypyの基本# 型チェックの実行mypy main.py
# 厳格なモードmypy --strict main.py
# エラーを無視mypy --ignore-missing-imports main.py
# 設定ファイルを使用mypy main.py合格ライン
Blackを使える
Ruffを使える
mypyを使える
コードフォーマットとツールの使い分けができる
演習課題
課題1: Blackの使用
Blackを使って、コードをフォーマットしてください。
課題2: Ruffの使用
Ruffを使って、Lintとフォーマットを行ってください。
課題3: mypyの使用
mypyを使って、型チェックを行ってください。
参考文献
この記事は以下の公的ガイドライン/標準に基づいています。
- Black Documentation - 公式ドキュメント
- Ruff Documentation - 公式ドキュメント
- mypy Documentation - 公式ドキュメント