人気ブログランキング | 話題のタグを見る

[CoveredCalc] ダイアログコンポーネントの共通化 - 断念

ここ 1、2 ヶ月の間、CoveredCalc のダイアログ中の UI 部品を Windows と BeOS で共通化できないかと画策していました。例えばテキスト入力フィールドであれば、Windows なら Edit Control、BeOS なら BTextView が OS で用意されています。当然ながら Edit Control と BTextView ではそれをプログラムから操作する方法が全く異なります。そういうわけでダイアログを作るときは大まかにまとめられる処理だけ共通化して、部品を操作する部分は Windows と BeOS の 2 つ実装していました。これがまあ面倒なわけで、ダイアログの追加を避けて通ろうとしてしまう自分がいたわけです。
でも、必要な操作に関する共通のインタフェースがあればいいんじゃない? 操作する部分は共通のインタフェースを通じて簡潔にまとめられるんじゃない?という単純な思いつきから始めたわけですが‥‥。

この度、共通化作業を断念しました。技術的に無理なわけではありません。というか明らかに可能です。そういうことをやっているプロダクトは世の中にたくさんあります。
今回、断念に至った理由はいくつかあります。

  • 共通化作業がなかなか終わりそうにない。
  • Windows と BeOS の思想に合わせにくい。例えば Windows ではモーダルダイアログが一般的なのに対し BeOS ではモードレスダイアログであるとか、他にも BeOS ではダイアログ(というかウィンドウ)単位でスレッド(チーム)が違うとか。
  • OS 間の違いを基本的に意識しない共通インタフェースを通じて操作を行う部分が、思ったより複雑でちっとも簡潔じゃなくなってきた。
  • 共通インタフェースの実装がかなり複雑。

特に後ろ 2 つが大きな理由です。
共通インタフェースは現在使っている部品だけしか実装するつもりがありませんが、将来、機能拡張のために違う UI 部品を使いたくなったときに共通インタフェースから作らなければなりません。これは面倒だ。モチベーションが維持できない。機能拡張するのをやめてしまいそうだ(笑)その上、共通の部分まで複雑なんじゃ全く意味がない。

結局、ロクな設計をせずにちょこちょこ思いつきでやっていたのがよくなかったんですが、無意味に時間を使っちゃいましたね。
いろいろ勉強にはなった気もしますが。
by hironytic | 2007-09-19 22:35 | 開発状況
<< メニュートリガー [CoveredCalc] 不... >>