【りんたー】
リンター とは?
最終更新:
💡 コードを読み、決めたルールで問題を指摘
コードを実行せず、設定したルールに照らして問題を指摘するツール。フォーマッターとの違い、自動修正の範囲、警告の扱い、テストと併用する理由を解説します。
📌 このページのポイント
- コードを解析して、ルール違反や危険な書き方を指摘する
- 対象言語・設定・プラグインで、検出できる問題が変わる
- 一部の問題は自動修正できるが、全部直せるわけではない
- エディタやCIで実行し、テストやレビューと併用する
リンターは、コードを動かして調べる?
バグは全部見つかる?
検出できる範囲は、言語やルール、設定によるよ。問題なしでも、計算結果や利用者の要望が正しいとは限らない。実際に動かすテストや、人が設計と内容を確認するレビューも必要なんだ。
フォーマッターとは、何が違う?
フォーマッターはコードの見た目を整える役割だよ。Prettierなら、一定の形式に書き出す。リンターにも形式のルールはあるけれど、コードの問題を検出する役割がある。設定して役割の重なりを減らすと使いやすい。
指摘されたら、全部自動で直せる?
ルールが対応しているものは自動修正できるよ。ESLintにもその機能がある。ただ、提案を自分で選ぶものや、コードの意味が変わり得る修正もある。差分とテストを見て確認しよう。
警告を全部無視してもよい?
エラーか警告かは設定上の強さで、問題の重大さと常に同じではないよ。導入時はルールの目的や既存コードへの影響を確認し、段階的に対応できる。抑制するなら、必要な範囲と理由を残し、重要な指摘を隠していないか見よう。
もっと詳しく知りたい人へ
リンターで問題がなければ、セキュリティ検査も完了?
検出できるルールや解析範囲に限界があります。外部ライブラリの脆弱性、実行環境、権限、処理の仕様等を網羅する検査ではありません。用途に合う別の検査と併用します。
自動修正なら、動作は必ず変わらない?
ツールとルールによります。Ruffはsafeとunsafeを区別し、unsafeでは実行時の挙動等が変わる場合を説明しています。修正の種類を確認し、変更後の差分とテストで確かめます。
まとめ:ざっくりこれだけ覚えればOK!
「リンター」って出てきたら「コードを読んで、設定したルールに合わない箇所を指摘するツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Linter / Lint」 = コードを点検するツール / 点検する処理
💬 プログラムを解析して問題を指摘する処理をlint、そのためのツールをlinterと呼びます。