November 30, 2003
簡単に使いまわせるプログラムを書けることって重要だよね。
どんな手法を使おうと、現場レベルでは、これを意識し実行できるれば、言語なんていとわない。
あるプレゼン向けにサンプルプログラムを作ることになって、どんなものか?というと、エクスプローラの画像プレビューモードライクなUI。
画像を視覚的に表示し、それがUIとして操作できる必要があって、今までの資産を流用し、ベースとなるVBアプリに、同僚が作った別のVBアプリの画像UIのロジックを移植することにした。
画像表示のプログラムを見るのは初めてだったけど、作った奴の能力からしてポータブルに作ってあるだろうと言う信頼の元、だけど、ちょっと心配だなぁとも思い、質問できる昼間のうちにハマるかと、朝一からやってみたら、この機能が思い通りのUIとして完成するまで3時間かからなかった。
結局のところ、その部分の機能のプログラムをコピペして、データソースを渡すインターフェースを改良し、定数宣言されてるプロパティを変えるだけでほぼ終了。
Win32レベルで描画してるので高速だし、HTTP経由でも画像を読めるようになってる。
うーーーん。これは唸ったね。完成されている。
クリックすると画像のオリジナルサイズでプレビューできる機能などもコピペだけで済むようになっている。
つまり、既にプレビューウインドウ付きの画像表示UIコンポーネントとして完成されていたのだ。ActiveXみたいに作りこんであるんじゃなくて、普通のプログラムの一部をコピペして流用できたことが重要なポイント。
今回、納期的に追い詰められてたので、このブラックボックス部にハマると深夜帰宅は免れないと思ってたところで夜9時には会社を出られたのは、まさにこれのおかげ。
言語論的にJavaだのなんだのでオブジェクト指向の善し悪しの議論はあるが、現場では結局のところどうでも良い部分もあって、つまるところ能力のある奴には、非オブジェクト指向言語だって、いくらでも概念的にポータブルなものは作れるよなぁと言うのをつくづく思い知らされた。
ただ、現実、そういう意識の高い奴が、世の中のソフトウエア技術者の中で圧倒的に少ないということがオブジェクト指向言語の利点に他ならないのがマネージメント的発想としてあるわけだが。