tsucchi’s diary(元はてなダイアリー)

はてなダイアリー(d.hatena.ne.jp/tsucchi1022)から移行したものです

最近のお仕事の話

12月のお仕事は当初思ってたよりは忙しくなかったのですが、ちょっと最近別件でバタバタしてました。

さてさて、最近のお仕事のお話。

今やっている仕事は主に2スレッドあるんだけど、1つは日常業務なので省略。もう1つの方がちょっと野心的なプロジェクトで、ウチの工場の仕事の流れをすべて司るような、そんなアプリ開発をやってます。まあこれだけじゃ何が何だか分かんないだろうけど、内容についてはこれ以上は書けません。でも、それじゃ面白くないのでアーキテクチャ周りと開発とテストについて書きます。

アプリのアーキテクチャは、C#Flex のクライアントが、Perl のサーバアプリ(cgi)を叩くような感じ。サーバアプリは XML-RPC ライクなやつ。CGI パラメータを渡すと、結果の XML を返します。サーバアプリ本体は Perl だけど、ビジネスロジックはストアドプロシージャで書いてます。

オイラはサーバアプリ周りの開発をやってます。ストアドプロシージャの開発が主。オイラはストアドよりは Perl のほうが好きなんだけど、チームのメンバーはそうでもないみたいなので、まあ仕方ないかなぁ。

で、自分がストアドに慣れていないのと、最近は TDD ばっかりやっていたので、「テストがない」、「テストベースじゃない」のがすごく不安で stressful でした。とりあえず 1 本ストアド書いてみて、「うーん何とかならんものか」と思っていたら、いつの間にかサーバアプリに対応する Perl クライアントを書いてました。(「かっとなってやった、後悔はしていない」系だね)。

実体は単なる Perl の Web クライアントなんだけど、「テストがない」、「テストベースじゃない」という自分の開発上の不安を取り除きたかったので、思い切ってパッケージ名を「Test::ほげほげ」みたいに付けました。で、チームの定例会で、コレ使って Test::More 叩くやり方を説明して、「こんな感じでテストやりたいんだけど、どう?」、「コレ使うと、好きなだけテストが叩けるぜ」的に売り込みをしました。

定例でのウケはあんまり良くなかったのだけど、スケジュールにある程度余裕があったこともあって、チームのメンバーも徐々にテストを書いてくれるようになっていきました。それどころか、メンバーの一人は、アプリのパラメータチェックをするための別のテストモジュールまで書いてくれました。最終的には、すべてのストアドに対応するテストが揃ったかな。

まだまだプロジェクトは初期段階で、今後どうなっていくか分からないのだけど、一応チーム内には「テストモジュール使って、テストコードを書く」文化みたいなのが何となく出来たみたいで、それがすごくうれしかった。オイラの開発上のストレスは無くなったし、アプリのクォリティも上がったと思うし。

次のフェーズからはちょっとスケジュールがきつそうなので、みんながちゃんとテストコード書いてくれるかはちょっと微妙なのだけど、こんな感じでぼちぼちやって行きたいなぁ、と思う今日この頃です。