美しいコードのCGIを愛でるスレ
■ このスレッドは過去ログ倉庫に格納されています
∧_∧ ∧_∧
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ (⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン >1
今更だけど
* use strictしてること(-wTは任意)
って開発時だけで十分だし、指定しても動きエラーも無い事って書いた方が良かったな。
#use strict は nifty 等に配慮して公表時には省くって言ってた人も居る。
まあ指定しておいたら誰かがログから
作者の気付かなかったエラー提出してくれるかもしれないけど稀だし。
過疎板なんだしで暫くageてみましょうよ。
定期的にメンテナンスされたり、多くの人がパッチを書くとなると
美しさを保つためにはやっぱり use strict されている必要があるんじゃないかな。
伽藍的な美しさもあるけどね。Rosettaとか。
ttp://search.cpan.org/~duncand/Rosetta-0.28/
Perlのサブルーチンの書き方って、例えば
#サブルーチン名適当、途中処理略
sub login{
get_query();
}
sub get_query{
end():
}
sub end{
exit(0);
}
のような、つまり処理の最初から最後まで
サブルーチンからサブルーチンへ飛び回るようなのは解りづらい?
以前はこういう作り方してたんだけど、
ある日思い直してメインとなる処理部分を作って、
それぞれのサブルーチンの返り値を受け取りつつ(一部除く)
順番に進めていくように最近は作り始めたんだけど。
>>118の例示よりも
my $status = Handler->login(@argv);
my $value = Handler->get_query($status);
$value eq 'hoge' ? Handler->nexthop() : Handler->end();
さらに、
my $handler = Handler->new();
$handler->login(@argv);
$handler->action();
# Handler.pm
sub action{
my $self = shift;
$self->get_query() eq 'hoge' ? $self->nexthop() : $self->end();
}
同じ事をやるのにも可読性・抽象性・再利用性を考えて書くと
オブジェクティブなコードになってくるんじゃないでしょうかね。
>>120
見事にzipの内容が再帰しているのはギャグですか? CGI.pmを使ってPOSTする方法を教えてください。 <form action="CGI.pm" method="post"> 日本のperlはみんなめちゃくちゃだよ。。
みんなtDiaryを読めー >>52
激しく同意。
チームでやるなら、言語依存の記述で凝って短くスマートに書かれるより、
コメントが多く平易な流れのコードが扱いが良い。チームには、いろんな
レベルのやつがいるからな。読み手もいろいろということだ。
あまり、凝って美しくすると読めないやつが増える。
また個人で使うCGIは、strictにしたり、my関数を使ったりするのは
自由だが、広くCGIとして配布するならPerl4でも動くように書いて、
パスのデフォルトはオールドな/usr/local/bin/perlなんてこともある。
結局ここで言う美しさなんて、オナニーなんだよ。プログラマの。
>>129
「わかりやすい」ことも美しさの1つだろ。
わかりやすいだけじゃ美しくは無いがな。 >>130
わかりやすいだけではないと思うが
わかりやすさは大半を占めてると思う いまだにPerl4使ってる奴なんているの?
最後の安定バージョンのリリースは12年前の1993/2/5だぞ?爺はいらね。
ついでに煽っておくと「(俺様が)わかりやすいように書いた」なんつーコードは
冗長で遅い糞コードの代表みたいなものなので短くて速いコード書けや。 >いまだにPerl4使ってる奴なんているの?
使っている奴はいないが、Perl4をいまだ
使っているプロバイダはあるので、目的により
そういう書き方で配布するケースもあるだろう。
「(俺様が)わかりやすいように書いた」
おい、逆だ。チームがわかりやすいようにと
書いてあるんだが。文脈を読めないやつだな。
あと、お前が勘違いしているのは短いコードが
早いとは限らないということ。
抽象化したコードはより簡潔になるが、速度は犠牲になる
ことが多い。
ラクダ本を少し嫁。
>>133
どこの誰が「短いコード=美しい」なんて言い出したんだ?
流れを読む限り、お前ってことになりそうだが。 >どこの誰が「短いコード=美しい」なんて言い出したんだ?
余計なつっこみかもしれないが、
132,133はどちらもそう書いていないぞ。
誰と聞かれれば、134になるな。完結。
\ヽ从//
Σ (⌒)ヽ_∧
mてつ ・∀・) <お前。
// YY ヾ\ どんなコードでもいいんでバグ出さないでくれ
後で読まなくて済むから アップローダースレの>>716がおいていったコードなんだがあまりにも醜くて、
ttp://up.isp.2ch.net/up/dcce97420e5d.zip
一応晒しておきますね。 ざっと斜め読みしただけだが
俺としてはまだ耐えられる範囲かな。
このままの勢いで10倍くらいのサイズになったら楽しそうだが。 use strict について詳しく書いたページないかな。
perldoc以外で。
use strictしろって一文なら何度も見たんだけど
いまいちぴんと来ない。
でもせっかくなら綺麗で分かりやすいコード書きたいし。 >>144
「綺麗」の定義にも依るけれど、strict プラグマはコードを「綺麗」に
するものではなく「安全」に保つ手伝いをしてくれるものだから、
そういう切り口のページはいくら探しても無いんじゃないかな。 >>145
どうもです。そうかーそうだよね。
コードの書き方自体は perlstyle.pod を参考にしてるんだけど。
use strictするとそれまでなかったエラーがたくさん出るから、
それをひとつひとつ解決するついでに
そうすることの意義みたいなものが知りたかったんだ。
でも巷で配布されてるCGIを見るにあまり必要ないことなのかな?
自分はCGI作るためにPerl始めたんで、参考書よりそっちのコードを眺めてるほうが多い。 多人数での作業、または
巨大プログラム開発時における変数の保守のため。
1人規模のプログラムではまだ必要ない。
でもできる限り関数化は目指した方が後々良い 配布 CGI のコードにろくなものがないのは激しくガイシュツ >>146
えーと
>コードの書き方自体は perlstyle.pod を参考にしてるんだけど。
が、
>でも巷で配布されてるCGIを見るにあまり必要ないことなのかな?
なんでこう思うようになっちゃうのかが分からないんだけど。
もしかして最初から何も考えずに use strict してるとその
ありがたみって分からなくなるのかな? だとすると
use strict しろっていう「一文」て実は有害?
use strict せずにグローバル変数使いまくりな CGI の
改造して地雷踏んだりすれば意義なんていやっていう
ほど痛感するものだと思うんだけどね。 なんだかアホいレスしていてすみません。
We上の色々な講座的ページを見ながらPerlの勉強をしてるつもりですが
use strictした上でのコーディングについてはあまり見つからないんです。
正直、use strictをすることで得られる恩恵についてはほとんど知りません。
「use strictしろというからやってみたけどエラーばっかでこの次どうすりゃいいんだかワカンネ」
「でもしたほうがいいらしい」
↑この辺をぐるぐるしているw >>150
なるほど。
use strict の次は「なんでもかんでも my つけろ」かな。
perldoc をあれこれ読めば use strict する理由もエラーの
対処法も分かると思うが、『Perlプログラミング救命病棟』
読むといいかもね。まとまってて扱いやすい。
正直、Perl について Web 上で「ハイレベルではないがモダン
な情報」を手に入れるのは厳しいと思うぞ。 144 は Perl と BASIC 以外の経験あるかい?
あれば割とすぐ恩恵が分かりそうな気がするんだけど
>>151
ありがとう。この本知りませんでした。
早速ウィッシュリストに入れたけどとりあえず著書間見てくる
あとlocalとmyについてもっと勉強してきます。
>>152
PerlのほかはJavaScriptくらいです。
DHTMLのために少しいじるくらいで、20行以内のものしか経験なし。
あとはDMonkeyとかDelphiを少し捏ね回す程度。 153は俺です。
あと誤字
×著書間
↓
○図書館
メンゴ
∧_∧
( ・∀・) | | ガガッ
と ) | |
Y /ノ .人
/ ) .人 < >_∧∩
_/し' < >_∧∩`Д´)/
(_フ彡 V`Д´)/ / ←>>106
/ ←>>111 !申し込んですぐにLINEスタンプを作れる。あとは投稿するだけ。
http://stampfactory.net 転職の際に必ず思い出してください。
下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in 東京
・転職会議で2.5点
・転職会議の「その他>2ch情報」の欄で過去の労基2chスレが表示される 誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
6PXXW0OIOH ■ このスレッドは過去ログ倉庫に格納されています