先日行われたカンファレンスでは相変わらず「[静的解析をCIに取り入れてみました!」や「レガシィシステム改善してるぜ!」というようなキラキラした発表が多かったように感じます(カンファレンスというのはそういう場なのでそれはそう)。少し前のPHPerKaigiを含めマイクロサービスやモジュラモノリスのようなアーキテクチャの話やフィーチャートグルでシステムを安定させるようなマクロ的話も印象的でした。
しかしながらリアルワールドなPHPの現場には未だにレガシーな環境も数多く存在することは言うまでもなくまた事実。
PHPConference2022の『PHPの今とこれから』という発表恒例のアンケートでははとっくにEOLを過ぎているPHP5系のシェアが少なくなったものの、未だに20%以上を占めているということからも、様々なしがらみからバージョンアップができずにレガシー化しているプロジェクトがまだまだ相当数あるのだなぁということが感じられました。
そして自分もどちらかといえばそういった「脈々と受け継がれてきた秘伝のソース」みたいな現場での経験が比較的多く、composerはもちろん自動テストも無ければ静的解析もできないし、PhpStormが会社から支給されるなんて夢のまた夢...みたいな状況下でifとforがもはや何十か数えることもできないくらいにネストしたソースコードに更にfor文とif文での制御を足すようなコーディングをしながら、そのあまりの認知負荷の高さに「やはり自分には向いていなかったかもしれない...」と転職したことを後悔した時期もありました。
ただ、そんな中でも折れずに今日までやってこれたのは転職前に未経験の自分に対して実務案件を通して色々教えてくれたプログラミング大好きな某ベンチャーの社長さんや、新卒でも育成枠でもないような中年の転職組の自分にも色々と教えてくださったPHPコミュニティの皆様のおかげだと思っています。
そしてレガシィシステムの開発に携わる中で「なぜこんなにもバグが多いんだろう?」「なぜこのソースはこんなにもぐちゃぐちゃになってしまうんだろう?」という疑問に対して「きっと知っている人がいるはず...!」とコミュニティの皆さんに聞きまくり、書籍を読み漁った結果先日のQiita記事に書いたような本達に出会うことができ、そして現場の泥臭いコードをローカル環境でこねくり回しながらどうすればこの状況防げたのか?どうすれば改善できるのか?というところを苦しみながらも考えてきた結果、転職してからわずか2年間の間にとても多くのことを学んだ気がします。
もしこの記事を見ていただいた方の中に自分と同じようにレガシィ案件の中で苦しい思いをしている人がいたら是非コミュニティの皆さんから頂いた言葉を繋いであげたいと思っています。
どんな案件であってもやりようはある、あなたが品質の高い、良いコードを書くことは誰にも止められないのだから
あなたの考え方は間違っていない、正気を保てなくなりそうになったらいつでもコミュニティに来たらいい
例え所属しているチームや会社の中では1人であっても、コミュニティにはあなたと志をともにする仲間がたくさんいます。
まだ勉強会やカンファレンスなどのコミュニティイベントに参加したことのない方は是非勇気を出して一度顔を出してみてください、きっと新しい世界が広がります。
Where there is a will, There's always a way.