RSS

 

RSS


   「プログラムの一部を取り替えるという作業」がある。理由は、そのモジュールが、「よろしくない」から。

 「よろしくない」というケースは
・動いてはいるけど
・バグが多かったり
  「なんか、いつもその辺でバグってるね」
・仕様追加、変更がしにくかったり
  「あのモジュールいじりたくないんすよ~」
・そもそも切り分けが不完全だったり
  「その部分だけ取り替えればいいじゃないの」「その部分と言われてもゴニョゴニョ・・・」

 そんなときの作戦を一つ。基本的には「モジュール化をしっかりしよう」「インタフェースを明確化しよう」ということ。

 図解で、そのイメージを伝えたい。怪しげだけど・・・。

/////

コマンドラインで動くコンバートツールのお話。

登場モジュール

黄色:
 ツール本体、何らかのコンバータ

どどめ色:
 コマンドライン解析部。稼働中ではあるが。
 新しいオプションが足しにくい。
 黄色の本体とべったりくっつきすぎ。

赤色:
 コマンドライン解析部。
 他のツールで使われている。
 評価が高い。また、他のツールと相乗りした方がお得。

/////

図1
 動いているアプリケーションがあって稼働中。だけどコマンドラインオプションを追加しようとしたら、なんだかそれがやりにくいという。
 黄色がアプリケーション(なんかのコンバータ)本体。
 どどめ色が、”オプション足しにくい”、コマンドライン解析部。
 解析部と本体の切り分けがなんだか不明確。

図2
 赤色は、別な「コマンドラインオプション解析モジュール」のGOODなやつ。どどめ色をみんなも使ってるこの赤色に置き換えたいなぁ。

図3
 ただし、図のように、本体と密着したカタチでくっけたくはない。下手するとせっかくGOODな赤が壊れだすかも。

図4
 コネクタ(インタフェース)を通してつながっているのでこんな形は結構よい。だだし、コネクタに追加や変形を行うときには、赤も黄色もそれに追従しなければならない。(USBメモリ的)

図5
 もうひとつ、すすめて、赤にはコネクタ赤用R、黄色本体にコネクタ黄色用YをつけてそこをケーブルRY(細線)でつないでおくと、さらには使いまわしがよい。

 赤の都合でコネクタRに変更があったときは、ケーブルRYだけその変更に追従すればよいという運営ができる。そのとき黄色とコネクタYには変更なし。
 (周辺機器のUSBケーブル接続のような感じ)

図6
 図4や図5の形にしておけば、どどめ色によるアクセスの道(コンパチビリティーのためなど)も残しておける。その際、図4、5、6、の黄色モジュールとそのコネクタはまるっきり同形、共通にできる。

 開発に際しては、図1から図6を目指しそのあと、図5を目指す作戦が考えられる。最終的には図5、図6も両方動作可能。

 

追加20090410
関連事項:
デザインパターンのadapter
C#のinterface


  • コメント (0)
  • トラックバック (0)
トラックバックURL :
http://www.iwai-masaka.jp/tb.cgi/53171