出先用のPCにVSCode入れていたのですがあまり使用しておらず、ために開くとautopep8入れるか
もしくはyapf, blackを入れますか?というようなみたいなポップアップが出てくる。
formatterとlinterなんだというのはなんとなく聞いたことあったのですが、これらの違いはわからなかったので調べました。
古株で日本人が作ったらしい。PEP8に準拠するようにコードを整形するツール。
特段これで問題ないかもしれないが、最近は後述する2つの方が人気らしい。
googleが開発したコードフォーマッターらしい。Yet Another Python Formatterの略とのことだが、覚えにくいと感じるのは私だけか。
一番カスタマイズ性が良いので細かい設定をしてコードの品質を高めたい場合に良いらしい
結構新しいコードフォーマッター。
yapfと逆でカスタマイズがあまりできない。悪そうに聞こえるがつまりデフォルトでコードの品質十分に高くなるということ。
コードをきれいにしたい!と困っているけど最適な設定もいまいち自信ないとか、社内の規約あったけど、もう守られてないとかグダグダ状態ならこれでblackでいいのでは?
ということ。
flake8, pylintも似たようなものじゃないのか?と思いまして調べたとことlinterというのは厳密にはコードをチェックするだけの存在のようです。
一方、formmatterはコードを修正してくれます。修正までやってもらいたいならformatterの方が便利ですね。
そしてformmatterの中ではどれがいいか?となったら今から入れるならblackがおすすめのようです。
カスタマイズをばっちりやりたい!というならyapfでしょうが、Pythonで有名なプロジェクトでもblackが流行っているようですのでよくわからなかったらblackですかね。
flake8はlinterですがautoflakeを使うとコードを修正してくれるようです。
https://github.com/PyCQA/autoflake