DODAIブログ – 03.働き者の小人さん


DODAI

執筆:M.K

働き者の小人さん

本物のプログラマなら小人さんに一度や二度はお会いしているはずだ。深夜3時マブタの重さが気になりだしたころにやってきて、朝起きればデバッグ済みのプログラムが完成しているという例の彼だ。

しかし経験者ならわかると思うが実はこの小人ちょっと頼りない。メモリーリークを起こしたり、英語のスペルを間違えたり、if文の条件を逆さにしていたり。それもそのはずで小人は決してあなたより賢くはならないし、あなたより注意深くもならないのである。

ところでドダイにはdbgenという小人がいる。前回のエントリでドダイはDB定義書を中心に開発すると書いたが、dbgenはそのDB定義書を読みとってC#のソースコードとSQLを吐き出してくれる。例の役立たずの小人と違いその正確さはまるでコンピュータの如しである。

テーブル数が50個程度あるシステムを考えてみよう。通常ほとんどのテーブルに対してO/Rマッピングのコードが必要になる。Create Table文のSQLも必要だ。単体テストとしてDBに保存できるか?読み出しできるか?をチェックしなくてはならない。

さてこの工数はどれくらいになるか?2,3人月はかかるであろう。5人月とることだってある。dbgenはこれらの作業をすべて黙って(タダで!)実行してくれる。そればかりかまずミスを犯さないのである。

dbgenの能力はこれだけではない。ビジネスアプリケーションでDB定義と同じくらい重要な物にコード定義がある。1:男、2:女などと定義するやつのことだ。dbgenはこれもコード定義書を読み取ってC#のソースコードを出力する。コードそのものをEnumとして(文字列としてでなく)C#から使用できるし、選択用のドロップダウンリストや、コード⇔表示名の変換なんかも全部自動的に実装してくれる。

単純なテーブルアクセスではだめで複雑なクエリの結果を取得するときなど、SQLの書かれたテキストファイルを読み込み、C#のソースコードを作成することもできる。

まだまだ終わらない。dbgenはなんとテーブル定義を読み取ってアプリケーション(!)を自動的に生成してしまうのだ。Excelだけで業務アプリが簡単に作れてしまう。まあこれを喜ぶのはパワポで一喜一憂するタバコ臭い偉い人達くらいで本物のプログラマは鼻にもかけないのだろうが、偉い人対策というものも世の中では重要なので許してほしい。

えっ?小人に会いたい?ハイハイいくらでも紹介しますよ。うちに入社してもらえれば…