Debug- Official Website -


犬土偶日記

海の近くに住みたい

Debug日記の使い方

話題:Webプログラミングとか

2005年01月28日

CGIの鬼

公開日時: 不明

昨日の深夜からアホみたいにCGI作成に没頭した。今回は仕事ではなくて自分のサイトのCGI。たまに椅子タンと山に登ったりしてるんだが、その日記を書くためのスクリプトだ。自作CGIの良いところは、何でも自分の思い通りにできることだ。ただしCGIそのものの仕様やサーバーの制限等でできないこともある。でもできる範囲内なら何でも思いのままにできるので、他人の作ったスクリプトを貰ってきて改造して使ったりした時に必ず出てくる不満も、作る段階で楽勝で排除できる。大体一般的なフリーのCGIスクリプトというのは最終的に画面に出力するHTMLが糞だ。CGIの大半が最終的にHTMLを出力するし、用途はほぼWEB限定と言ってもいいから、絶対にHTMLの知識は必要だと思うんだが、CGIのプログラムを書けるような人間が全くHTMLを知らないというのが俺には信じられない。最初からいきなりCGIに手を出してマスターしてHTMLは触った事がないとは考えられない。まずホームページ作成と言って最初にやるのはHTMLだろう。なのに何故HTMLを全く理解してないとしか思えない汚いソースを吐かせるんだろうか。ほとんど嫌がらせとしか思えないような物を堂々と吐くのが多いんだよ。エラーだらけで本来はちゃんと表示すらされないような物。でもブラウザはバカが書いたページでも極力表示するようにかなり強引なエラー訂正機能が備わってるから何とか表示できてる。そういう初心者丸出しのみっともないソースを出力するのがどうにも耐え切れんのでめんどくさくてもCGIは自力で作った方がいい。どうせ登山データを記録して各登山道の選択率や登山率を計算して表示してくれるような機能が備わった日記CGIなんてものが世の中に存在するわけがないので自分で作るしかないわけだが。基本的にはトラックバック機能のないMovableTypeみたいな見た目BLOG形式のCGI。あくまでも見た目だけ。MTのスクリプト見たことないから知らんしね。データベースというものを使わずにCGIだけでやるっていうのが多少強引だがサーバーの制約とかもいろいろあるし俺の知識不足もあってなかなか難しい。作りながら色んなことを思いついてアレもコレもって感じで機能を追加していくとプログラムが大変な事になる。変数名が被ったりすると死ぬのでわざと長めの名前を変数に付けたりするんだが、それだと今度は変数名のタイプミスで死んだりする。Perlは変数の宣言が不要なので、宣言されてない変数が出てきてもエラーにはならない。0もしくは空文字が初期値なので、そのままで処理されてしまって思ってた通りに動かないことがある。プロのプログラマの椅子タンに言わせると変数の宣言が不要なプログラムなんて怖くて使う気にならないらしい。俺みたいな素人は逆にイチイチ宣言するのがめんどいんだけど。で、CGIを作る時の手順としてはまず最終的に画面に出力する画面のイメージを考える。大抵は実際にHTMLファイルとしてサンプルを作ってしまう。表示するあらゆる部分の具体的な処理が見えるぐらいまで。そしたら今度はその出力を行う前に処理するデータが必要になるから、そのデータを記録する側の処理を考える。掲示板で言えば書き込み部分だな。どういうデータをどういう形式で記録するのか。後々の処理で使いやすいような形式で記録しないといけない。記録するデータの種類と形式が決まったら今度はそれらのデータを受け取るためのフォームを用意する。これで基本的な物は揃う。フォーム→受け取って処理→ファイルに出力→ファイルから読み出し→処理→画面に出力、この流れが完成する。その後で枝葉の部分を作っていく。例えばアクセスログを取るとかアクセスカウンタをつけるとか登山データを集計するとか投稿データの整形処理とかスタイルシートとか色々。いや、俺の場合はっていうだけだからこれが普通の流れとは思わん方がいいかも。世の中の一般的CGIプログラマがどうやってるのかは知らない。何にしてもただプログラムするだけというわけにはいかないので膨大な量のメモが必要になる。変数名、サブルーチン名、その他色々と細かく書いてあるメモをエディタで常に開きながらそれを見て作っていく。作りながらメモの量もどんどん増える。全部覚えておくのはなかなか困難だ。で、ある量を超えると不安になってくる。これ、完成するのか?って感じで。作りながら色々とアイデアが出てくるのでアレもコレもって欲張って色々書いていくと以前書いた部分で修正が必要になったりもするし。そんなこんなで日付が変わったぐらいの時間から午後2時ぐらいまで、たまに激しく休憩したりしつつもずっと山日記のCGIを弄っていた。実質10時間以上はやってたと思う。

Mステを見るつもりだったが爆睡してて見逃した。22時半ごろに起きて飯を食った。それからこの日記を書いてるんだが、そろそろポップジャムが始まるのでこの辺で日記はやめようと思う。明日のバンド練習は休み。明日は朝からボウリングに行く予定。土日の午前中は3ゲーム500円だ。もちろんそんな大金払えるわけないんだが、弟が給料貰ったばっかりで奢ってくれるらしい。明日の目標はミキティに勝つこと。なかなか難しい。俺は大体いつも120〜140ぐらいで安定してる感じ。明日はどれぐらい行けるかな?

話題:Webプログラミングとか

Info.
公開日時不明
本文文字数2226文字 (タグ込み)
URLhttps://orca.xii.jp/debug/diary/diary.cgi?id=dogoo;date=20050128
RSS1.0https://orca.xii.jp/info/diary-dogoo.rdf
Comments

コメントはありません。

コメント投稿フォーム
文字色              
  • 名前を省略すると「名無しDebugger」になります。
  • メールアドレスの入力は任意です。
  • 海外からのコメントスパム対策のため、表示された漢字の読みを必ず入力してください。
  • 本文は必須項目です。投稿する場合は必ず記入してください。タグは使えません。
  • 改行が1つ入力された場合は強制改行として処理されますが、2つ以上連続する改行は段落の終了として処理されます。
  • 本文の行頭に「>」のある文は引用としてマークします。引用でない部分の冒頭に「>」は付けないでください。
  • コメントの削除は管理者若しくは日記執筆者しかできません。書き込む時は注意しましょう。
  • 全部記入が済んだら投稿ボタンを押す前に一度読み直して推敲しましょう。