一般社団法人 全国個人事業主支援協会

COLUMN コラム

出先用のPCにVSCode入れていたのですがあまり使用しておらず、ために開くとautopep8入れるか

もしくはyapf, blackを入れますか?というようなみたいなポップアップが出てくる。

formatterとlinterなんだというのはなんとなく聞いたことあったのですが、これらの違いはわからなかったので調べました。

 

autopep8

古株で日本人が作ったらしい。PEP8に準拠するようにコードを整形するツール。
特段これで問題ないかもしれないが、最近は後述する2つの方が人気らしい。

yapf

googleが開発したコードフォーマッターらしい。Yet Another Python Formatterの略とのことだが、覚えにくいと感じるのは私だけか。

一番カスタマイズ性が良いので細かい設定をしてコードの品質を高めたい場合に良いらしい

black

結構新しいコードフォーマッター。
yapfと逆でカスタマイズがあまりできない。悪そうに聞こえるがつまりデフォルトでコードの品質十分に高くなるということ。

コードをきれいにしたい!と困っているけど最適な設定もいまいち自信ないとか、社内の規約あったけど、もう守られてないとかグダグダ状態ならこれでblackでいいのでは?

ということ。

 

最後に

flake8, pylintも似たようなものじゃないのか?と思いまして調べたとことlinterというのは厳密にはコードをチェックするだけの存在のようです。

一方、formmatterはコードを修正してくれます。修正までやってもらいたいならformatterの方が便利ですね。

 

そしてformmatterの中ではどれがいいか?となったら今から入れるならblackがおすすめのようです。
カスタマイズをばっちりやりたい!というならyapfでしょうが、Pythonで有名なプロジェクトでもblackが流行っているようですのでよくわからなかったらblackですかね。

 

補足

flake8はlinterですがautoflakeを使うとコードを修正してくれるようです。

https://github.com/PyCQA/autoflake

The following two tabs change content below.

石橋 航

最新記事 by 石橋 航 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア