PHPで配列厨による悪いコード

後輩は何でも配列に入れたがる
確かにPHPの配列はMAPだし特別な宣言は不要で使いやすいが
意味の分からない配列利用はやめていただきたい

なぜ配列を避けるべきなのか

  • 可読性が低い(わざわざなぜ配列にしたのかを考えるて読むので無意味に配列だと勘繰りする
  • 書きにくい(いちいち[”]を書くのがだるい(keyに空文字が許されないのでコピペミスでスペース文字が入るったりするとバグる
  • ヒントがでない(統合開発環境ならちゃんと宣言するとヒントがでるが、配列に入れるとヒントを出せないのでミスの温床になる
  • debugしにくい(key名を間違えた場合存在しないkeyを指定したと出るがどこで間違ったかピンと来ない。
    変数を定義していれば未定義の変数へのアクセスとでて定義忘れとすぐ分かる

以下のコードは後輩が生み出したソースを適当に書きだしたもの

class Acme{

$this->repositories=array();//なぜArrayを作るんだ?
function __construct() {
//使うDBの数だけメンバー変数を定義するのがそんなに面倒なのか?
// $this->repositoriesComment = new comment();でよくね?

    $this->repositories['member'] = new memberdb(); 
    $this->repositories['blog'] = new blog();
    $this->repositories['comment'] = new comment();
}

function main($membrtcd){
//結局DBのNameベースで読んでるなら

//$this->create($this->repositoriesComment,$membrtcd);
//でよくね?
   $this->create('member',$membrtcd);
   $this->create('blog',$membrtcd);
   $this->create('comment',$membrtcd);

}

function create($dbname, $membercd){
//$dbname->insert($membercd);でも同じでしょ?

    $this->repositories[$dbname]->insert($membercd);
}

}

コメントはまだありません

コメントはまだありません。

この投稿へのコメントの RSS フィード TrackBack URI

コメントをどうぞ

WordPress Themes