2008年12月24日水曜日

状態機械

パワータイプと状態機械をScala DSLで記述する方法について試行錯誤しつつ実装。

ユースケースによって発生するドメイン・イベントとドメイン・リソースの状態機械を有機的に結びつけることができそうな感触を得た。このあたりは 汎用性を目指すUMLでは、利用者に任されているところなのだけれど、使い方をよほど真剣に考えないと実運用に適用できるレベルで具体化できないので、結 局使われないままになってしまうという結果になっていると思われる。この点をモデリング手法で定型化することで、一般で利用可能にすることが SimpleModelingの狙いの一つである。

実装を続けながら、アプリケーション開発では状態機械の置き場所が一つの論点であることに気付く。
ドメインオブジェクトの状態機械で色々なアクションを行うようにすると、ドメイン・モデルとアプリケーション・モデルが好ましくない方向で密結合 になってしまう。アプリケーション・モデルはドメイン・モデルに依存するけれども、ドメイン・モデルはアプリケーション・モデルから独立させたい。
ドメイン・モデルの状態機械で色々なことを始めると、最終的に業務プロセスの作業手順をドメイン・モデルが抱え込むことになってしまう。
この問題を解決するためには、ドメイン・オブジェクトの状態機械にアプリケーション・モデルの状態機械をかぶせるような実現方法が必要になってくるかもしれない。そういったプログラムを自動生成するには...などとつらつら考える。

0 件のコメント: