- lint:コンパイラやインタープリタよりも厳しくソースコードをチェックするプログラム
- linter:エディタ上で lint に引っかかるようなコードの書き方が良くない部分を指摘してくれるもの
- コードフォーマッタ:コードを lint に従って自動整形してくれるもの
複数人でのソフトウェア開発プロジェクトなどでは,統一的な書き方をして品質向上やレビューコストの削減をするために,コーディング規約を設定することがある.あまりにも細かい書き方の指定を考えて共有するのは大変なので,最低限統一したい部分は言語の開発元や大企業などが公開している linter を使用すると良い.
例えばコミット前にはコードフォーマットして linter のエラー表示がない状態にするなどを規定するだけで,ソースコードを最低限統一された状態にできるので,書き方ではなく処理内容にレビューのコストを集中させることができる.
個人レベルの小規模な開発でも,インデントや改行の仕方がファイルやメソッドによってバラバラな状態から簡単に書き方を揃えることができるし,他人から引き継いだソースコードが自分の書き方と異なっていても整形すれば最低限読みやすい状態に持っていける.
メジャーな言語には大抵 linter やコードフォーマッタは存在し,IDE やテキストエディタにはデフォルトでフォーマット機能がついていたり,簡単にフォーマット機能を拡張できるようになっているので,まだ設定していない人は設定してみましょう.
以下,atom で Python の linter・フォーマッタを利用する方法を記載する.
環境
- Mac OS 10.12.4
- homebrew でインストールした python 3.x が導入済み
$ python3 -V
Python 3.6.1
利用する atom パッケージ
- atom-beautify
- 様々な言語のソースコードを自動整形してくれる
- linter
- linter-python-pep8
手順
pep8・autopep8 のインストール
$ pip3 install pep8
$ pip3 install autopep8
atom パッケージのインストール
apm install atom-beautify
apm install linter
apm install linter-python-pep8