PHPカンファレンス福岡2025の講演資料を公開します。誤りを想定して防御的にチェックするのではなく、そもそも誤りにくい設計を求めて、「予防」の観点を軸足にして堅牢なコードを導く様々な設計のヒントを紹介します
基本的なことだけど、勉強になる。プログラミングするときは、こういったことをきちんと確認しないといけない
PHPプロジェクトでは、まずPHPとかいう型なしクソ言語が最大の弱点でありPHPを捨てるのが最大の防御では?
ブコメ、今どきのPHPプロジェクトは雑な型を書くとCIが通らないので、型の有無については静的型付け言語とさほど変わらないです。
https://facilities.med.wustl.edu/app/uploads/formidable/21/Average-1.pdf https://facilities.med.wustl.edu/app/uploads/formidable/21/Users-3.pdf https://facilities.med.wustl.edu/app/uploads/formidable/21/Live.pdf
php だけど参考になる
ジェネリクスなしのPHPで静的型付け言語と変わらないというのはだいぶ苦しい
予防でコードがピカピカにゃ!ボクも真似しちゃうにゃ!
”堅牢なコードとやらを書くと評価されるのか” というのが一番の問題点だと思う。テストケースになんか書いてあるなら別だけど
何度も見返して読みたくなったので助かります🙏
静的型付けとジェネリクスは関係ないだろ… goでもジェネリクス導入されたの最近(2022年)だし。 最初から型付け言語を使った方がよいはそれはそうだが、既存のphpシステムがある場合も多いだろう。
最新のphpはどうなっているのかわからないですが、ここら辺をちゃんとしようとする時は代数的データ型がサポートされてないと個人的に辛い。
型をガッチリやるなら、静的型付け言語を最初から使った方が良いやろ、と思ってしまう。なので、JavaScript→typescriptなどは、どこまでいっても数歩足りない、だが無いよりは滅茶苦茶助かる印象。
やっぱり人類に型は必要だよね。それと他の言語でも通用することが他にも書かれていていいな
PHP7以前のスタイルでは、多様な検索条件を必要とする引数にとりあえず連想配列はありがちだったけど、今なら操作対象のクラス毎に対となる検索条件クラスを用意した方が良いのかな、と。
"堅牢なコードとは悪いコードに絆創膏をあてたものではない"
予防に勝る防御なし(2025年版) - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHP Conference Fukuoka 2025
PHPカンファレンス福岡2025の講演資料を公開します。誤りを想定して防御的にチェックするのではなく、そもそも誤りにくい設計を求めて、「予防」の観点を軸足にして堅牢なコードを導く様々な設計のヒントを紹介します
基本的なことだけど、勉強になる。プログラミングするときは、こういったことをきちんと確認しないといけない
PHPプロジェクトでは、まずPHPとかいう型なしクソ言語が最大の弱点でありPHPを捨てるのが最大の防御では?
ブコメ、今どきのPHPプロジェクトは雑な型を書くとCIが通らないので、型の有無については静的型付け言語とさほど変わらないです。
https://facilities.med.wustl.edu/app/uploads/formidable/21/Average-1.pdf https://facilities.med.wustl.edu/app/uploads/formidable/21/Users-3.pdf https://facilities.med.wustl.edu/app/uploads/formidable/21/Live.pdf
php だけど参考になる
ジェネリクスなしのPHPで静的型付け言語と変わらないというのはだいぶ苦しい
予防でコードがピカピカにゃ!ボクも真似しちゃうにゃ!
”堅牢なコードとやらを書くと評価されるのか” というのが一番の問題点だと思う。テストケースになんか書いてあるなら別だけど
何度も見返して読みたくなったので助かります🙏
静的型付けとジェネリクスは関係ないだろ… goでもジェネリクス導入されたの最近(2022年)だし。 最初から型付け言語を使った方がよいはそれはそうだが、既存のphpシステムがある場合も多いだろう。
最新のphpはどうなっているのかわからないですが、ここら辺をちゃんとしようとする時は代数的データ型がサポートされてないと個人的に辛い。
型をガッチリやるなら、静的型付け言語を最初から使った方が良いやろ、と思ってしまう。なので、JavaScript→typescriptなどは、どこまでいっても数歩足りない、だが無いよりは滅茶苦茶助かる印象。
やっぱり人類に型は必要だよね。それと他の言語でも通用することが他にも書かれていていいな
PHP7以前のスタイルでは、多様な検索条件を必要とする引数にとりあえず連想配列はありがちだったけど、今なら操作対象のクラス毎に対となる検索条件クラスを用意した方が良いのかな、と。
"堅牢なコードとは悪いコードに絆創膏をあてたものではない"