これだと、毎日帰りの通勤電車の中で入力すればいいので、出社退社時間を覚えてるうちに入力できるし、時間の節約になる。
なおかつ、ロジックが簡単なのでPerl/CGIの勉強にはもってこい。^-^
せっかくの久々のWebアプリ製作なので、いろいろと新しい技にチャレンジしてみました。
・Windowsローカルで開発・デバグ
Apacheを立ち上げてCGIを手元のPCで動かしてみました。
さらに、ブラウザでテストする前にコマンドラインでスクリプトをデバグ( -wスイッチ)。
結果、スクリプトを書く→テスト の工程が短くなり、開発効率が劇的に向上しました。
今までFTPでアップロードしてCGI::Carpのエラーメッセージとにらめっこしてたのが馬鹿みたい。
・HTML::Templateの利用
ViewとLogicの分離というやつです。
スクリプトがだいぶ見やすくなりました。
加えて、ロジックとデザインで頭を切り替えて作業できるので、頭がすっきりします。
今回はLOOPに初挑戦。ハッシュへのリファレンスを配列に格納するというのが難易度高かった。
・リファレンス
ハッシュへのリファレンスを配列に格納し、さらにその配列のリファレンスをテンプレートオブジェクトに渡す。
・use strictを最初から使用
やっぱuse strictはプログラムを書き始める最初の段階から入れておくのがよいです。
以前、Webアプリをある程度作りこんでからuse strictを導入したら、大量のエラーで大混乱したので。
今回、use strictのおかげで何がよくなったのかあまり実感ないですが、とりあえずソースコードが現代的になりました。
・サブルーチンを多用
YukiWikiMiniのソースコードを読んで、ソースの構成をマネしてみました。
意味のまとまりごとに、細かくサブルーチンを作りました。
名前のつけかたにも工夫(動詞を使うとか)して、見た目すっきり。
・スクリプトを1ファイルにまとめる(mycmdパラメータでモード切替)
これもYukiWikiMiniから学んだ。
いままで、モード(動作)ごとに別々のスクリプトファイル(.cgi)を作っちゃってました。
ファイルを1つにしたことで、保守性・可読性が劇的に改善。結城さんに感謝です。
・sprintf , printfで文字列を整形
初歩的な技ですが、数字を扱うWebアプリでは重要です。
これのおかげで数字の見た目を簡単に整形できました。(2007-07-01とか、0900とか)
・File::Copyを導入
さらりと導入できました。
・テキストファイルの行ソートを実装
「よくわかるPerl」からアルゴリズムを借用。
結構便利です。
my @lines = ;
my @sorted_lines = sort { &yyyymmdd($b) cmp &yyyymmdd($a) } @lines;
print OUT @sorted_lines;
カテゴリ: