この記事は「ひとりでカンファレンスふりかえりo0h Advent Calendar 2021」のday-17です。

ひとりでカンファレンスふりかえりo0h Advent Calendar 2021 - Adventar

今日振り返るのは、「面倒なコード修正は自動でやらせてしまえる!リファクタリングツールを使おう」です。 PHP Conference Japan 2021のCfPに応募しました。Regular session (25 mins)の枠になります。

面倒なコード修正は自動でやらせてしまえる!リファクタリングツールを使おう

概要

PHPの簡単なコードの書き直しを(半)自動化してくれるリファクタリングツールがいくつかあります。 「もっとパパっとガッとコードのお掃除しちゃおうぜ!!」という目線で、その手法としていくつかのツールを紹介・比較をしてみようというものです。

先日Rectorをテーマにしたプロポーザルについては紹介しました。 そちらはLT用に書いているので題材を絞っていますが、こちらはレギュラートーク用に幅をより広げています。 ”*具体的には、Rector, PHP CS Fixer, EasyCodingStandardを想定しています。”*とプロポーザル中に記載しておりますとおりです。

それぞれが生まれてき経緯や発端、そのコンテキストを受けての注力課題・コンセプト・得意分野etcは多少なり異なると思うのです。なので、もしかしたら全てを併用することにもなるかも知れませんし、「うちのチームはまずコレを使いたい!」というものは1つだけかも知れません。

そうしたチームの意思決定につながれば、という気持ちです。

リファクタリングツールは、「用意されているものを掻い摘んで利用する」だけでもとてもコスパが良いものです。それに加えて、「自前で書き換えルールを用意する」ことができたら、活用の幅が広がるし、より”日常的に・当たり前に使う”ものになっていくかも知れません。 そのためのルール作成やカスタマイズ方法についても、このトークの内容に収める予定でした。

動機

Rectorは個人的にもすごく助けられたツールです。 また、JS/TSを触っている人たちにとってはPrettierが、Goにおいても強力なフォーマッターがあることを考えると、そうした世界観を体験した人たちにとっては「もう戻れない」ような感覚もあるのではないでしょうか。

そう思うと、自分も含めて「まだまだ楽できる部分に、煩わされたりストレスを感じている」ような人は多いのでは・・・?という風にも思います。

なので、それらの”下らなさ”から解放したい!されたい!!と思って、プロポーザルを投げてみました。

その中で、自分自身が書くツールの比較をしてみたり知識をつけたいな・・というのも動機の内です。 Rectorは「ちゃんとコード読んでない」ので深ぼってみたい、cs-fixerは「PHPCSとどっちを使うべき!?」みたいなのに即答できる程度には知っておきたい、ECSについては「便利そうなんだけど、まだまだ触ったことがない・・・」からやってみたいな、と。

そうやって「ちゃんと使いこなす」ようになっていこうぜ!!みたいなのを自分にも課して、周囲にも届けられると良いな〜という感じのプロポーザルです。