Diary

私のCGI作成について


日記をこのCGIに移動してから全然書いていなかった。
最近パソコンのファイルを整理していたら、初めてCGIを作りはじめた頃のスクリプトが出て来てとても懐かしかった。
実は最初の頃、Perlの関数はprintの他には2〜3個位しか知らなくて、それらを駆使して掲示板などを作っていた。今から考えるとある意味すごい。
その頃からロジックを考えるのは好きで、少ない知識でいかに望む処理を実現させるようなスクリプトを書くかというクイズを解くようなことを楽しんでいた。そんなふうに当時から(今もそうだけれど)スクリプトの書き方はすべて自己流でお手本にしたものもないので、今配付しているものにしても見る人が見たら呆れるようなものかもしれない。

まあそのような状態で当時日記CGIのレンタルサービスを始めたのだが、無謀だったとしか言い様がない。
しかしこのレンタルサービスのおかげで自分にとってとても多くの収穫を得ることが出来た。
たとえば最初の頃、1個1個CGIを設置していたのだが、何か修正があるとすべてのファイルを書き直して再アップしなければならないし、設置作業があまりにも単純で何個もあったら耐えられない、などの理由から、申し込みがあると日記が自動生成されるCGIを作ることにした。当時すでに今のカテゴリー分けの出来るCGIの前身のようなものを作っていたので、その応用で作成自体は簡単だった。ただこれをしてしまうと、ユーザが自動的に無限に増え続けるという恐ろしい結果になってしまったのであった。

という訳で、私のCGI作成の原点は「面倒なことを極力しないように済むようなものを作る」ということなのである。たとえば最初の頃アイコン付き掲示板などを配付していたのだが、このアイコン登録(アイコン画像をFTPでアップ、Web上で画像の名前とURLを1個ずつ書き込んで登録という作業)が非常に面倒で、サンプルの設置が苦痛になり、アイコンアップ機能を持ったCGIを作るに至った。デザインの設定やほとんどの作業がWeb上から出来るCGIというのも単に自分が楽をしたいから作ったようなものだ。後で楽をするためだったら今少しくらい大変でも何でも作ってしまうぞ、ということだろうか。

つまり私は面倒なことや同じ作業の繰り返しなどが極端に嫌いな極め付けの怠け者ということである。(この性格は主婦としては致命的だ。)
スクリプトを作成する際の作業で一番好きなのは、ロジックを考え、結果を予想しながらそれを記述することである。ツリー式の掲示板の書き込み時の処理とか、shiromuku(mt)BBSの記事表示部分の記述とか、日記の最新記事表示のしくみとかそういうのを考えて作るのはとても面白かった。そしてこれが一発で上手く行って思い通りの結果が得られたりすれば、もうこれは止められないくらいの快感である。この作業は特にProgramming Perlで正規表現とリファレンスを学んでから、より一層楽しいものになった。反対に一番苦手なのはHTML部分の細かい修正とかデザイン設定のためのHTML部分への変数埋め込み作業だろうか。(だから私のHTMLタグはかなりいい加減です。それとデザイン設定に関して細かなバグが頻発します。本当に申し訳ありません。)今までで一番嫌だったことはホームページ作成ソフトで作ったJava ScriptだらけのHTMLファイルと全く同じものをCGIで生成して欲しいと言われて、スクリプトの中に、HTMLファイルのソースからコピーした気の遠くなるような量の変なタグを組み込むという作業(!)だった。(この時のファイルは多くのテキスト部分が画像で表示されていて、なおかつその画像をIMGタグではなくJava Scriptで表示するという泣きたくなるようなものだった。これで懲りて、今はこの種の依頼は頼まれてもお断りすることにしている。)

最近よくPerlの次はPHPと言うから、勉強してみた方がいいのかなあと思いながら、履き慣れた靴かはたまた長年使って来た道具のように自分にしっくり来て愛着のあるPerlから私はやっぱり離れられないし、今さら他のことはやりたくないと思ってしまう。Perlで困っていることや不便なことがあるわけではないし。それどころか私にとってはとても便利で面白くてさらに使い安い。それにまだまだ勉強すべきことや知らないことが一杯あるのだから。

そんなことをあれやこれや考えながら昔のファイルを見ていたりしたら時間が過ぎてしまい、また古いスクリプトは捨ててしまってもいいと思いながら何となく捨てられなかったので、その日もファイルの整理ははかどらなかった。
2003年06月03日(火) No.26
Comment(0)

この記事へのコメントは以下のフォームからどうぞ

Name
E-Mail
URL
感想
1000文字まで
Icon Icon
投稿キー 投稿キーを右に記入して下さい
Pass
No.PASS
No.USERPASS