コードのレガシーさには計測できるレガシーさと計測できないレガシーさがあると考えています。
私自身、計測できないレガシーさをうまく察知し、それを「コードの不吉な臭い」として感じ取るのは得意ではありません…。
しかし、
このような情報は各種ツールを利用することで計測できます。
計測した数値を活用することで「コードの不吉な臭い」が少しずつ見え、実際にどこに手を加えて改善・リファクタリングをしていくと効率がよさいか?という道筋が見えてきます。
本トークでは主にツールで計測できるコードのレガシーさに着目しながら、どのようにコードを改善していけるか?をお話しさせていただき、皆様のリファクタリング活動の一助となればと思っております。
PHP 8.0に鳴り物入りで導入された新機能「アトリビュート」みなさん使っていますか?
コードに構造データが埋め込める? PHPDocより良い? 互換性がちゃんとしてる?「機能の抽象的な実装と、アプリケーションでの具体的な利用を分離でき」て、インターフェイスより柔軟?デコレータと同じようなものらしい? PHP 8でよくわからんけど#[ReturnTypeWillChange]
って書いたよ?
などなど、なんか #[]
って感じで書くんでしょという以外は得体の知れないものとしてPHPer界隈に横たわっています。本トークではアトリビュートへのアクセス方法、文法から制約、作例まで20分に凝縮して説明します。Attributesで実現するPHP8時代のバリデータもご参照ください。
「PHP の配列は、実際には順番付けられたマップです。」
この愛おしい文章から始まるPHPの配列は、PHPerにとって切っても切れない関係です。そんな大事な配列のことを、私達はどれほど知っていますか?
配列の内部実装の話はPHP7がリリースされた頃に多く語られてきたかと思います。しかし、2015年に私はPHPを触ってもいません!
PHPでお仕事をして3年目、これを機に配列を学び、内部実装を読み解いていこうと思います。