エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

プログラムに自由度を高めすぎると良くないときもある例のメモ【240日目】

注意

プログラム書いていてうまく行かなかったやつのメモ。

ただ、この内容を抽象化して表現することが出来なかったので、
良いタイトル思いついた方教えてください。

やったこと

抽象メソッドactionを作って、抽象クラスBaseControllerを作った。

最初のプログラムは、actionだけを呼び出す仕組みだったが、
route.phpってファイルにファイル名とメソッド名を指定すれば、指定したファイルとメソッドが自由に実行できる仕組みを付け足した←これがよくない

なんで良くない?

最初はactionをユーザーに書かせることを強制して、actionというメソッドだけが動かせるようにしていた。
actionを書けば、その後の動作は想定内の動きをすることが保証されてるから良かった。

だが、route.phpによって、ユーザーが自由にメソッドを用意することができるようになってしまった。
他のプログラムはactionしか動かないのを想定して用意されているのに、他のメソッドを自由に追加してしまったら、他のメソッドの動作を保証できなくなってしまう。

制限は悪いこととは限らない

自由というのは、それだけ保証が効かないということでもある。

制限といのは、制限内であれば、保証が効くということでもある。

そんなパターンは、プログラムでも人生でもよくあることだろうなと思ったまる。

これ、わりと抽象化できる話な気がするけど思いつかなかった。