再演で@t_wadaさんのPHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計を聞いて、本当に様々な発見がありました。
その中でもassertの使い方は本当に勉強になりました。(とはいえ、そんなにちゃんとassertの使い所を理解しているわけではありませんが・・・)
「発生した暗黙の前提をassertを使って評価式で書き、明示する」
これってtraitでも使えるんじゃないかなぁーなんて思うんですよね。
Traitは怖い
こんな実装があったとして、本当にcountUp()
が実装されているの?って不安になるわけですよ。
|
|
|
|
assertを使って不安を取り除く
こんな感じにassertを使って「countUp
メソッドが必要ですよ」と前提条件を明示することによって、より安全にTraitが使えるのかと思います。
|
|
最後に
もっと良いやり方があるような気もしますが。
しかし、より安全にTraitを使うためにassertを使うのも良い気がします。