2003年07月13日
川俣晶の縁側ソフトウェアりすと亭開発日誌total 2119 count

APIレイヤーの追加

Written By: 川俣 晶連絡先

 今日は、日曜日だというのに、りすと亭のソースを直していました。

 今日の作業を一言で言えば、明確な形でのAPIレイヤーの追加ということになります。これまでのりすと亭は、内部的にいくつかのアセンブリに分割されているとはいえ、全体として1つの塊として動作するアプリケーションソフトという形になっていました。正確に言えば、一部のアセンブリは本体とサービスマネージャでシェアされて使われたり、完全に1つの塊というわけではありませんが。まあ、ともかく、幅広く使われることが想定されていない設計でした。(明確に想定されていないことを実現するのはYAGNIの原則からすれば不適切ですし)

 しかし、Webサービスだけでなく、プラグインの機能を付けていくことを想定すると、これでは不十分です。プラグインがりすと亭内部の何かの情報を取得しようとしたとき、あるいは何かの機能を呼び出そうとしたときに、それを実現するインターフェースが必要となります。

 ここで重要なことは、インターフェースはただ付ければ良いというものではないということです。りすと亭のプログラム内部は改良によってどんどん変わっていきます。もし、プログラム内部の一部へのアクセスを許すとすると、その部分を書き換えると、プラグインが動作しなくなります。かといって、プログラムの書き換えをしないと決めると、進化の止まった保守性の悪いプログラムになって、サポートの手間も増えるし、ユーザーにもあまりメリットがありません。

 今日やったことは、このようなジレンマを解消するために、明確なレイヤー分けを導入するということです。ListTeiAPI.dllというアセンブリが、レイヤー境界を担います。このアセンブリは、プログラムの内部動作に依存しないinterface (ここでいうinterfaceは純粋にC#の言語仕様でいうところのinterface)をいくつか定義しています。りすと亭本体と、ListTeiAPI.dllは、このinterfaceを通じて関係を持ちます。これにより、ListTeiAPI.dllはりすと亭本体のモジュールに対する参照関係を持ちません。その結果、ListTeiAPI.dllだけを切り離して、新たに作成される新規プログラムから参照して利用することができます。つまり、この新規プログラムはListTeiAPI.dllが提供するクラスにのみアクセスすることができ、りすと亭本体のいかなる変更も、新規プログラムに影響を与えることが無くなります。

 とはいえ、現時点でAPI経由で使える機能は、とあるお客様から要求された最低限のものです。これらの機能を使って華々しい何かが実現するのは、おそらくは、次のメジャーバージョンアップの頃ということになるでしょう。

Facebook

キーワード【 川俣晶の縁側ソフトウェアりすと亭開発日誌
【りすと亭開発日誌】の次のコンテンツ
2003年
07月
14日
Beta-24公開。やっとここまで辿り着きました。
3days 0 count
total 1953 count
【りすと亭開発日誌】の前のコンテンツ
2003年
07月
11日
管理者からメンバー追加を行う際に一部設定が有効にならない問題
3days 0 count
total 2070 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20030713171606
サイトの表紙【りすと亭開発日誌】の表紙【りすと亭開発日誌】のコンテンツ全リスト 【りすと亭開発日誌】の入手全リスト 【りすと亭開発日誌】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.