- 283 名前:nobodyさん mailto:sage [2009/02/06(金) 02:17:24 ID:???]
- >278
クラス名が具体性を欠く。$obj = new Test; の1行からは、何をしたいのかという意図が全く伝わってこない。 そもそもそのクラスは、「何を」表したクラスなんだ?アプリケーションか?ユーザーからのリクエストか?今から生成するフォームか? クラス内の処理が実質的に全てstatic。こんなクラスはインスタンス化する意味が無い。 ボタン名をconstにして全てstaticメソッドにする、あるいはクラス自体を取っ払って単なるグローバル関数にする。 ボタン名を定数ではなく変数にする意味は? 変数を使うというのは「この値はスクリプトの実行中に変化する可能性がある」という意思の表明でもある。だから「変わる数」なんだよ。 動的に変わるならばそのままでもいいが、もし仮に実行中に変わらないならば定数にすべきだ。 determineSubmitという関数名。回りくどい上に、意味がおかしい。サブミットされたかは、このメソッドが決めるわけじゃない。 百歩譲ってもcheckSubmitted()。 俺ならisSubmitted()もしくはsubmitted()。boolを返す事が自明になるし、どっちの場合にtrueが返るのかも分かりやすい。 それとアプリケーション構造として、処理に必要になる値の存在だけをチェックすべきだ。 textarea0に文字が入ってさえいれば、サブミットボタンが押されてようが爆発してようが別にどうでもいいだろ? サブミットされたかは関数なのに、POSTかどうかの判定は変数を直接見ている。記述のレベルが揃っていない。 「好きな食べ物は辛いものと糖質を75%以上含むものです」なんて言わないだろ?同じレベルの記述では抽象度を揃えろ。 「辛いものと」なら「甘いもの」だし、「糖質を75%含む」ならば「カプサイシンを10mg含む」だ。その時興味のあるレベルに揃えるんだ。 つまりif( isPosted() && isSubmitted() ) か、if( $_SERVER["REQUEST_METHOD"]=="POST" && isset($_POST[[$key]) 。
|

|