« 正規化崩しの目的は「高速化」だけではない | トップページ | X-TEA Driverの英語版登場 »

2016.05.30

「EXCEL仕様書からコード生成」のアンバランス

 EXCELで書かれた仕様書は、その見かけから「EXCEL方眼紙」と揶揄されているが、今ではそれなりに進歩して、そこからDDLやクラスコードを出力できるようになっていたりする。しかし、そのような「気の利いた機能」を搭載すれば、EXCEL仕様書はますます奇妙なものになってゆく。

 まず、生成されたコードが案外役に立たないという問題がある。たとえばCREATE TABLE文は文字通りテーブルを作成するためのものだが、現実の開発ではテーブルは何度も作り変えられる。それゆえに、CREATE TABLE文だけでなくALTER TABLE文も生成できるようであってほしい。ところが、EXCEL仕様書のテーブル定義からCREATE TABLE文を生成するのは簡単だが、定義修正後の差分からALTER TABLE文を生成するのは簡単ではない。

 手段がないわけではない。テーブルオブジェクトのメタデータを読み出せばよい。最初にテーブル定義にもとづくテーブル作成が要求されたなら、指定されたターゲットDB上でCREATE TABLEされるようにする。その後にテーブル定義が変更されてテーブル作成が再度要求されたなら、テーブル定義とテーブルオブジェクトのメタデータとが比較され、ALTER TABLEされるようにすればよい。簡単ではないが可能ではある。

 しかしここまでやったらかえって異様だ。それほど気の利いた同期化機構を開発できるスキルや情熱があれば、EXCELにこだわる意味などないからだ。DSL(ドメイン特化言語)を工夫すれば、DBへの接続設定等を統合した、リッチでインテリジェントな編集用UIをいくらでも作れる。それをせずにEXCELにこだわった「コード生成機能付き仕様書編集システム」というのは、キーボードの代わりに「そろばん」がつながっているPCのようなものだ。珠の動きがセンシングされ、計算結果がディスプレイにでかでかと表示される。なんだか両さんのマンガに出てくるギャグみたいだ。

 クラスコードの生成についても同様である。上述したように、クラス設定用の初期コードを生成するだけであればたいして役に立たない。ところがそれ以上の工夫をしようとすれば、これまた「単純な仕掛けでは役に立たないが、気を利かせるほどEXCELにこだわる意味がなくなる」という矛盾が露呈する。高度になればなるほど「そろばんPC」のようにアンバランスなギミックと化す。

 コード生成機能付きのEXCEL仕様書というものは、開発技術の自然な発展から生まれたものではなく、EXCELへの偏執が生み出したアダ花である。本来であればその枠組みは、DSLでシステム全体を定義するためのDSP(ドメイン特化基盤)に発展する萌芽を含んでいるのだが、EXCELへのこだわりがそれをつぶしている。かくも扱い難きはEXCEL仕様書である。


本ブログでの関連記事:
「何を使って設計書を書いていますか?」と尋ねよう

|

« 正規化崩しの目的は「高速化」だけではない | トップページ | X-TEA Driverの英語版登場 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 「EXCEL仕様書からコード生成」のアンバランス:

« 正規化崩しの目的は「高速化」だけではない | トップページ | X-TEA Driverの英語版登場 »