<< Prev Page Next Page >>

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


わかりやすいコード

プログラムのコードがわかりやすい、メンテナンスしやすいということについて、ちょっと迷いが。

今まで僕は自信を持って、こういうプログラムがいいと思っていたし、今もそう信じている。(MVCフレームワーク的なものがなにもなかったとして)

<?php
/**
* ○○を行うためのクラス
*/
class ○○Page {
/**
* ○○Pageのエントリポイント
*/
public function main() {
$this->validteRequest();
$this->storeToDB();
$this->output();
}
/**
* リクエストを受け取りバリデーションを行う
*/
private function validateRequest() {
// そういう処理
}

/**
* DBに更新処理を行う
*/
private function storeToDB() {
// そういう処理
}

/**
* 結果を出力する
*/
private function output() {
// そういう処理
}
}
$p = new ○○Page(); // ここがglobalなのが嫌だったらstatic関数にする
$p->main();

つまり、各個別の独立した処理は別の関数にして、その関数を呼び出す流れをもった大本の関数がある、というふうにすると、各関数に詳細なコメントもかけるし、IDEの関数一覧みたいなのでぴょんぴょんジャンプできるし、変数のスコープも短くできるし、大本の関数は行数が少なくて流れを追いやすいし、いいことずくめだと思っていた。

ところが、こういうコードを読みにくいと感じ、下のようなコードが読みやすいと感じる人(技術的にレベルの低い人)がいることがわかって、うーんと考えた。こんなのね↓
<?php
// リクエストを受け取りバリデーションを行う
そういう処理
:
:
// DBに更新処理を行う
そういう処理
:
:
// 結果を出力する
そういう処理
:
:
各処理が30行~100行以上もあって、すごく長くなっててもこっちがいいと思うらしい。その理由は一点、「こうなってたら上から読んでいけば何が起こってるかわかりやすいから」だそうで、まあそりゃ確かに、他のどこかにぴょんぴょん飛んでないほうが安心できると思う気持ちはわからんでもない。

今の悩みはそういう人をどう導いたものかということ。少なくとも、こんなコードを量産されたらメンテナンスも尻ぬぐいの手間もたまったもんじゃない。

classだのfunctionだのがごく小さな心理的抵抗になっているということなのか、どう言えば、心から上のようなコードを書きたいと思うようになってくれるのか、上のようなコードをすんなり書けるようになるにはどういう練習を課せばいいのか、が難しいところ。


この記事に対するコメント

この記事に対するコメントの投稿



管理者にだけ表示を許可する

この記事に対するトラックバック

トラックバックURL
http://tockri.blog78.fc2.com/tb.php/232-190ad712
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。