04/11/06 08:43:10
>>331
いろいろと測定してみたら,ソースのパースに結構時間がかかることが
判明したからああいうソースになったんです.きれいに書こうと思えば
もっときれいにかけた.でも,CGI として実行させる限り,ある程度以上
規模の大きいプログラムだと,綺麗にする=遅くなる,になってしまいます.
信じられなければプロファイラなどを使って調べてみてください.
C-BOARD は,そういう板挟みの中で生み出されたコードであることを理解
いただければ幸いです.
あと,ほとんどの方は異様に文字密度の濃い部分をさして,ソースが汚い
とおっしゃっているのだと思いますが,中身(ロジック)を見て頂ければ
それほど汚く無いことは理解いただけるかと思います.
(綺麗などというつもりはありません)
高機能を謳っている CGI のコードは大抵,全くモジュール化されていませんが,
C-BOARD ではそのような事はありません.たとえば,C-BOARD ではツリーを
表示する部分のコードは次のように簡潔なものとなります.
sub view_tre {
my $o_tree = new FILE::TREE($CNF::place{'data'}{'path'});
my($r_tree, $flag);
while ($r_tree = $o_tree->read($view{'start'}, $view{'number'}, $::FORM{'cmd'})) {
map(&tree($_), @{$r_tree});
(++$flag != $view{'number'}) && &DESIGN::tree_split;
}
$o_tree->close; print ${&DESIGN::line};
}