ユアマイスター株式会社エンジニアブログ

ユアマイスター株式会社のエンジニアが日々徒然。

PHPのLintツール Phinder を使い始めました

どうも。ユアマイスター星(@inase17000)です。(今週いっぱい青森は三沢市に来ております)

この前、Code Review Meetup #4 Code Reviewで集まろう - connpassに参加して来て、Siderの方が新しい解析ツールをリリースするよ!と言っていました。

Phinderというやつなんですが、早速ユアマイスターでも使い始めてみたので簡単に紹介したいと思います。

※SiderでPhinderを有効にした時の使い方です。ローカルで直接使いたい場合は、こちらを参照ください。

Phinderとは

packagist.org

Phinder: PHP Code Piece Finder という名前にもあるように、プルリクエストのソース差分から特定の文字列を見つけ出してくれるLintツールです。Siderと組み合わせると下記のような指摘結果をGUIで確認することもできます。

f:id:yourmystar_engineer:20181002115856p:plain

どう使うか

使い方は簡単。プロジェクト直下に phinder.yml を置いて定義を書いていくだけ。

先ほどお見せした指摘は、下記のような定義を追加した際の確認結果です。

- id: debug
  pattern: debug(...)
  message: デバッグコードは削除してください

なんのために?

そもそも、コードレビューの目的って

  • 問題を防ぐ
  • スタイルの統一
  • より良い実装の模索
  • 知識の共有

と、いろんないいことづくめのはずなんですが、一般的な「いいコード」が大義名分だったりします。

自分が関わっているプロジェクトだったりチームメンバーに蓄積されている、過去の問題の対処や未来の問題の予知は目視確認でしかできない。 しかし、それで果たしてプロダクトの品質を良いものに近づけるのかと、ずっとモヤモヤしていました。

このPhinderを使うことによって、

  • 「この関数を使うときは、こういう使い方しちゃダメだからね」
  • 「この書き方はそもそもしないようにしよう」

といった、チーム内にだけしか必要ない集合知を明文化して行くことができます。しかもチェックは自動化できるなんて神。

何か問題が起きた時にも、「意識を変えます」という曖昧な根本対策だけではなくて、ガツガツこのYAMLに対策となるチェックルールを書き足すことによって、未来永劫残り続ける障害対策になりえます(ちょっと大げさすぎですね、すみません)

これからの期待

  • これまでに起きた障害を見直して、現時点で追加したいチェックを書き足す
  • 障害が発生した時の対策として、振り返り後、「このチェックルールをYAMLに書き足します」という根本対策が普及する

そんな風にチーム全体で品質をあげていければ良いなと思います!

以上、10月もどんどんアウトプットしていきます!