まなろぐ

好きなこと、やったこと、しあわせだったこと、そういうのぜんぶ。

lintはエンジニアのつらみを軽減するんだと思う

TypeScriptが苦手だ。JavaScriptでも動くのに、型はあった方がいいのみならずanyは使うなとかasは使うなとか色々な制約がつく。

C言語Javaは型がなければ動かないのでまだいい。tsはLintがしっかりしてないと、これはああするべきあれはこうするべきと、いろんなべき論が後から後から出てくる。JavaScriptが英語なら、TypeScriptは日本語くらい難しいと思う。C++の方がまだ腑に落ちやすい。C++はきっと中国語くらい難しい。

 

そんなtsへの苦手意識をどう克服するか。lintをガチ盛りすればいいと思った。

tsの苦手なところは『tsは動く状態と美しい状態に乖離が大きい』ところであると思う。それなら、美しい状態をlintで全部ルール化すればいい。チームによるとか個人によるものも、lintにしてしまえばgit cloneしてnpm install(yarn install)しただけで、『このプロジェクトではこういうルールです』というのが全部伝わる。すごい。ドキュメント要らず。

 

lintは、レビューイのつらみも軽減すると思う。ついでに、レビュワー のつらみもちょっと軽減する。

エンジニアの世界には暗黙知が結構多い。lintがユルめの状態だと、そういった暗黙知がコードレビューで一気にやってくる。最近対面が減ったせいか、レビューで文字で送られてくる情報が増えたのか、暗黙知を受け止め切れていない年数の浅い人を結構見る。根気強くレビューで指摘してあげるのも大事なのかもしれないが、レビュワー 側としても同じ指摘を何度もするのはつらいし、レビューイとしてもまた同じ指摘をさせてしまったという気持ちになる。人もいる。

そんな時にlintがあれば、人間の時間を使う前に自分の方で修正しておけるし、レビュワー 側もいつも同じことばっか指摘するおばさんでごめんね;;;と思わなくていい。レビューイもレビュワーも、人間が考えるしかない、関数の設計とかそういったところに集中できる。幸せな世界だ。

 

というわけで積極的にlintを有効活用していこうと思う。『こういうルール導入できないかな?』と思って探すと意外とあるので、世の中同じことで困ってる人は多いなあと思う。