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

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

今日振り返るのは、「PhpStorm使ってるんなら.ideaは共有していこうぜ!!」です。

PHPerKiagi 2021とPHP Conference Japan 2021のCfPに応募しました。いずれもLT枠になります。

PhpStorm使ってるんなら.ideaは共有していこうぜ!!

PhpStorm使ってるんなら.ideaは共有していこうぜ!!

概要

PhpStormを利用することで、PHPプロジェクトの開発効率が引き上げられます。これは、例えば「手軽に単体テストを実行できる」などの利便性の向上も意味しますが、もっと踏み込んで「コード解析やtypoの検出」など、品質についての「当たり前」の水準を向上させる効用もあるものだと感じます。

それによって、PJに規律がもたらされて「自然と良いコードが書ける・気持ち良い開発体験を享受できる」ものです。IDEの持つ能力で、素のままでもかなり「良いPHPを書く」ことに効果がありますが、PJの内容に即した設定が為されることでその力が120%まで高められます。

そうしたPJ特有の設定は、アプリケーションコードなどと同様にGit等による変更管理と共有ができるのです。一般的に「 .ideaディレクトリは.gitignoreするもの」のように扱われますが、PJメンバーが同一の設定を利用することで開発が加速していきます。

具体的には、どんな内容が共有できるのか?それによってチーム開発に何が起きるか?といった話をしてみたいな、というのが本プロポーザルでした。

(ちなみに、本プロポーザルで PHPカンファレンス2021プロポーザル投稿スピード選手権の1位を獲得しました(?)。ありがとうございます💪 すんごいたまたまのタイミングと言うか、TL上に「もうオープンしているね」的なツイートが流れてきたので軽い気持ちで投稿した結果・・)

https://twitter.com/ooharabucyou/status/1410404868146143235

動機

https://twitter.com/o0h_/status/1352084405435596801

会社の業務で若手メンバーを交えて活動する機会があったのですが、その際に「当たり前に高品質なコードを高速に書くには?」を考えながら「今っぽい開発体験の土壌を整える」ことに取り組みました。 例えば「息を吸うようにTDDでコードを書く」とか「くだらない事は静的解析に拾わせる」とかです。その一環で、「しっかりとPHPに強いIDEを使おう」がありました。

概要の所でも言及したとおり、「PJで必要とされる設定をしっかり行うことで開発体験が向上する」ものです。しかし、「開発の補助輪になるもの」について「PhpStormに不慣れな人ほどつまずくor気づけないままになる」のが気になりました。これでは「職人的な使いこなし術が存在し、そういうのを知っていると強い」な世界観になります。

例えば「ローカル環境のDBへのつなぎ方」「PHPStanやlinterをリアルタイムに動かす」とか、「IDEから直接ユニットテストを実行する」とか「Xdebug等を用いてステップ実行デバッグができる」etc.・・・は、自分の感覚では「出来ないとストレス」に思うほどに、無くてはならないものです。が、今回に限らず過去に働いていたチームにおいても、そのあたりの設定状況はまちまちでした。しかも「ただ知らなかっただけ」というパターンが多いです。

それでは「開発を加速する」ことへの妨げになるので、じゃあ手順書を書いてそれに従った設定をしてもらって・・・でも実施できるものはありつつ、やはり「PhpStorm自体に不慣れなメンバー」に「いきなり開発に没頭してもらう!」というのには少し遠ざかります。