私が歌川です

@utgwkk が書いている

linterを導入していなかったプロジェクトにlinterを導入しようとするときにまずやること

今どきlinterを使っていないプロジェクトなんて、と思われるあるかもしれませんが、歴史の長いプロジェクトだとそういうこともあるでしょうし、あるいは一部のDSLやスキーマ*1に対してのみlinterを走らせたいということもあるでしょう。

そういったプロジェクトに対してlinterを導入する前に、デフォルト設定でlinterを走らせたときにどういう出力になるのかを一通り眺める、というのをやっています。

どういうエラーがどこで何件出ているのか、warningなのかerrorなのか、linterのルールがプロジェクトにとって妥当なのか、一通り吟味した上で設定を調整してからlinterを導入するようにしています。なぜなら、linterのノイズが多いとlinterの言うことに従うモチベーションが下がる (と自分では思っている) からです。

最初からlinterが入っているなら、とりあえずlinterの言う通りにする (あるいは設定を変える) ことはできると思いますが、途中からlinterを導入するとプロジェクトのこれまでのコードとlinterの出力が噛み合わないこともあると思います。linterの噛み合わせをよくする*2のがよいと考えています。

具体例として、Perlプロジェクトに対してperlcriticを導入するときにやったことをまとめた記事を紹介します。

blog.utgw.net

心構えの話をしておこうという気持ちに急になったので記事にしました。

*1:たとえばDBスキーマやGraphQLスキーマ

*2:この表現は今考えた