この記事は「ひとりでカンファレンスふりかえり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については「便利そうなんだけど、まだまだ触ったことがない・・・」からやってみたいな、と。
そうやって「ちゃんと使いこなす」ようになっていこうぜ!!みたいなのを自分にも課して、周囲にも届けられると良いな〜という感じのプロポーザルです。