📚

遅ればせ: linter/formatter理解メモ

に公開

リンターとフォーマッタの違いについて、、理解が進んだのでメモ。

超恥ずかしいことに、あんまり具体的にイメージできずエンジニア6年間やってました。

Python環境での整理です。

リンター

「その書き方だと動かない可能性がある」とか「ルール違反してるコードがある」とかを
動かす前にチェックする。

if文書きすぎてネストが深くなりすぎてるよ〜〜とかをチェックするのもこっち。

これらを「静的解析」って言うらしいけど、「静的解析」っていう単語が直感的じゃなくてよくわかんないのであんまり好きではない...

例えばこんなことをする⇩

  • 未使用のimport削除
  • import並び替え
  • 不要な変数削除

pythonで利用されるruffのサイト⇩

https://docs.astral.sh/ruff/linter/

フォーマッタ

「見た目」をチェックする。ただただ読みやすくするのみ。
実行結果とは関係ないはず

  • インデント、空白
  • 行の長さ
  • クウォートの統一
  • カンマの位置
  • 括弧の配置

pythonで利用されるruffのサイト⇩

https://docs.astral.sh/ruff/formatter/

ちなみに

元Kotlin民なのですが、detektとktlintの使い分け、棲み分けが一生わからない...
両方リンターなはずだけど、ktlintだけお世話になっていた

まとめ

ここに全部書いてあった。。⇩

https://zenn.dev/tanny/articles/cdb555d6124a2a

https://zenn.dev/shytaani/articles/863d3f83f40095

Discussion