今日もなんかだるい。
外には出ずに、せっせと家でプログラミングをしていた。VPNで会社のネットワークに接続し、アプリを改良する。
なんで家に帰ってまで仕事をやってるかって?
いや、おもしろくてしかたがないんっすよ。プログラミングが。趣味と仕事をごっちゃにしている。
いい仕事にありつけた。世の中悪いことばかりではない。好きなプログラミングをやってお金がもらえるなんて、こんなラッキーなことはない。
それではまた、明日からの一週間、無事に過ごせますように。
今日もなんかだるい。
外には出ずに、せっせと家でプログラミングをしていた。VPNで会社のネットワークに接続し、アプリを改良する。
なんで家に帰ってまで仕事をやってるかって?
いや、おもしろくてしかたがないんっすよ。プログラミングが。趣味と仕事をごっちゃにしている。
いい仕事にありつけた。世の中悪いことばかりではない。好きなプログラミングをやってお金がもらえるなんて、こんなラッキーなことはない。
それではまた、明日からの一週間、無事に過ごせますように。
一週間終わった~!!
今日は9時から20時半まで働いたぞ~。アプリがようやく公開できそうなところまでこぎつけたところで、さあもう少ししたら帰るか、と思ったところにMさんとMさんからいろいろと横やりが。これはどうなってんの?これはどういうインプリメンテーションなの?
MさんもMさんも、ああああ、MさんとかMさんとかややこしい。同じネットワークチームのMさんはMさんで、サーバチームのMさんはM姉さんと書くことにしよう。Mさんは、そもそもの要求仕様がどうだったか、とかその辺を突いてきて、M姉さんは私のCatalystのコーディング方法がMVCフレームワークの正当的なやり方ではないという。
要求仕様。いや~今さら言われてもなあ。「前任者が作ったけど使ってないのがあるから、使えるか試してみろ」と言われて、動かしてみたら作りかけで、それを完成させただけなのになあ。まあ、製品版を買うか、自前で作るかどっちがいいのか、それを比較検討するためのタスクだったわけで、対抗馬の製品が持っている機能をある程度持っている必要はあるが、どこまで必要なの?どれだけ工数をかけたらどこまでできるの?落としどころはどこになるのか。そんな計算が必要なのだろう。
M姉さんはプログラミングに詳しい。いや、プログラミングだけでなくサーバやらネットワークやらセキュリティやらロボットやら、ありとあらゆることに精通している、スーパーウーマンなのだ。MVCフレームワークでは本来なんたらかんたら、ビジネスロジックはモデルに記述すべきなのにコントローラーに云々、これでは単なるO/Rマッパーがどうたらこうたら。話をしていたら、すっかり夜遅くなってしまった。
私はMVCフレームワークはちゃんと勉強したわけではないし、Catalystもこの会社へ来てうはじめて触ったし、ただただ先人が書いたソースを真似して書いてきただけなのである。まだまだドシロウトの域を出ない。よし、ここらでいっちょ本腰を入れて勉強するか。
と思って、週末に読もうと会社から本を一冊借りて帰ってきた。数少ないCatalystの本である。わかる人はわかっていると思うが、CISCOのルータやスイッチのCatalystではなく、PerlにおけるMVCフレームワークのCatalystである。
英文で300ページ。学生時代なら2~3日あれば読めたと思うが、今ではどうだかなあ。
今日は朝8時くらいに起きた。しんどかった。起きるのがつらかったが、なんとか動けそうだったので、重たい体を引きずって布団から這い出た。のろのろと会社に行く準備をしたが、自分でも行ける状態なのかどうかわからん、と思ってとりあえず会社に「体調不良により様子を見て出勤します」とメールをしておいた。
それでも9時前には家を出て、バスを使わず駅までえっちらおっちら歩いて、10時過ぎには会社についた。昼過ぎまではしんどい状態で仕事をしていたが、15時を過ぎたくらいから状態はましになっていた。
私の前任者が作りかけていたアプリのテストでどうしてもうまくいかなかったところが、ようやく正常に稼動した。ちょっとドキュメントが不親切なCPANのモジュールの使い方が原因であった。newするときに、たくさんあるメンバ変数(とperlでは言わないか?)のうち、2つはセットで指定しないといけないのだ。初期値を設定しないのであれば、やはり2つセットでなければならない。モジュールのソースを読んでデバッグコーディングを入れて追っかけて、ようやく突き止めた。
このモジュールをnewするときにはそのパラメータ1つしか設定せず、もう1つをあとからsetしていたのでうまく動かなかった。もう1つのパラメータは動的に変わるので、その値が確定した後でオブジェクトを作るようにしたらうまくいった。こんな大事なことが書いてないなんて。まあ、CPANのモジュールなんて誰かが責任持って管理しているわけではないし、使うのは自己責任だからこんなこともあるか。
ようやくうまくいったところで、区切りが良かったので帰ってきた。まだまだエラーハンドリングが甘いところとかユーザインタフェースとか作り込んでいかないといけないところはたくさんあるので、これから一気に進めよう。
帰りもバスを使わず歩いて帰ってきた。帰ってきて歩数計を見たら7689歩。うむ、これくらいは毎日歩けるといいなあ。歩けなくてもWii Fitがあるが、やはり外を歩くのは気持ちがいいのだ。って、こんな季節だから言ってられることだな。
今日も調子が悪い。
ほぼ一日中寝ていた。
明日から先週の続きで、前任者の作ったプログラムのデバッグに入る予定だが、会社に行けるだろうか。あんまり時間が経つと、プログラムの中身がどうなっていたか思い出すのに時間がかかる。
てなことにならないように、要所要所にコメントはきっちり入れておくこと、そもそも読んでわかるプログラムを書くこと、理想は「ソースが設計書であり仕様書」であることが必要。perlの世界では perldoc のような、そのソースがきちんと何者かがわかるような仕組みがある。
でも、ほとんどコメント入ってないんですけど・・・>前任者
動かん。
前任の作ったプログラムが動かないのである。
ユーザに新たに提供するサービスのために、ユーザ認証をPOP3サーバを利用してやろうとしている。
Perlのプログラムの中では、CPAN の Mail::POP3Client モジュールを使って、フォームから受け取ったユーザ名とパスワードで認証しようとしている。
が、どうしても connect() でエラーが返ってくる。
どう見ても使い方に間違いはない。
モジュールの中にデバッグコーディングを入れてみた。
そうしたら、newして作ったオブジェクトに後からsetした値がちゃんと入ってないではないか。
全部ではない。サーバ名などはちゃんと入っている。
なぜこういうことが起こるのだろう。
調べてたら、、、、、
独自に継承したオブジェクトを作って、それでなんかやってるよ~。。。。。(涙)
Catalystのフレームワークの中にそんなもの紛れ込ますなよなあ >前任者
今日はそこまで。