今日も朝6時過ぎにばっちり目が覚めて、朝から絶好調。朝の時間にゆとりがあるというのは嬉しい。
そして会社へ行って仕事仕事。ようやく社内のWebサーバのリプレースが終わったので、それを待っていた自作アプリを載っけてみる。動いた。んが、遅い。所属部門をプルダウンリストから選択すると、もう一つのプロダウンリストが連動してその部門内の研究グループ一覧に変わるように作っているのだが、その切り替わりが遅い。なんでこんな遅いんだ〜。
で、今までそのサーバで動いていたアプリは管理者Mさんお手製のperlのアプリなのだが、私が今回作ったのはMVCモデルによるWebアプリケーション開発フレームワークであるCatalystによるもの。Mさん曰く、
「Catalystは何でもいっぺんメモリに貼り付けちゃうから嫌なのよ」
な、な、なんですと?そ、そ、そんな………
ああ、よくよく自分の書いたコードを思い出したら、あたり前田のクラッカー。
なんせテーブルを丸ごと変数に読み込んでリファレンスで他のプロシージャに渡してるではないか。いや、それを生で書いているわけではなく、オブジェクト指向なものでそこは隠蔽されているのだが、よく考えたら内部的にそういう動きをするのは明白ではないか。
しかし、それにしても遅い。そんなにスペックは低くないし、テーブルと言ってもまだレコード数は100件くらいだ。しかし遅い。そしたらそのサーバの管理者であるMさんが、
「あ、これmod_perl入れてない」
な、な、なんですと?そ、そ、そんな………
いや、確かに彼女が今まで作ったアプリはメモリを食わないようなお行儀よいcgiばかりで、というか単なる検索みたいなものばかり。何かの一覧を表示する、とかではなく、名前の一部や部署名からメールアドレスを検索する、という数レコード表示して終わり、というわけではなかった。だからmod_perlは入れてなかったしい。
「でもmod_perl入れたら、今まで作ったアプリがちゃんと動くかわからないし、httpdの再起動も必要だから、テスト環境で試したいわね」
「テスト環境なんてあるんですか?」
「ないわよ」
……………………………………………………………………。
今まで一人でアプリを作ってきて、自分のローカルでテストして動けば本番サーバへリリース。それで今までやってきたらしい。しかし、私という開発者が加わって、やはり本番機と同じ構成のテスト機が必要だ、という話になり、一応余っているサーバがあるから、常駐しているSEさんに構築依頼はだしてきた。だしたはいいが、そのSEさんも仕事が山積みになっているから、また正式なリリースは当分お預けかなあ。
しかし、私の開発も終わっているわけではない。ユーザがWebから入力したデータをCSVでダウンロードできる機能をまだ実装していない。ユーザのデータは独立したセグメントである管理用VLANにあるRADIUSサーバへ入力されるのだ。ネットワークでが分断されているから、USBメモリーにCSVでデータをダウンロードし、RADIUSサーバのCSVインポート機能で登録、という運用にしようとしているのだ。
楽しみはまだまだ尽きない。仕事がおもしろくてなかなか切り上げられない、というのもまた困ったものだ。