BT

IODAアーキテクチャについて

| 作者: Jan Stenberg フォローする 37 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2015年6月7日. 推定読書時間: 2 分 |

原文(投稿日:2015/05/27)へのリンク

Ralf Westphal氏によると、レイヤードアーキテクチャヘキサゴナルアーキテクチャクリーンアーキテクチャといったアーキテクチャパターンはみな同じ2つのことをしていて、よく似ているという。その2つとは、責務領域の定義と機能的依存関係の整理だ。これらのパターンは、アプリケーションの構造について非常に大雑把なイメージを与えてくれる。基本的に、これらは機能や振る舞いの依存関係を、ひとつの難解な階層構造として記述する。

Westphal氏はアーキテクチャを記述する別の方法を求めて、IODAアーキテクチャというスタイルを定義した。これは振る舞いの責務に直交する3つのフォーマルな責務を用いる。

IODA Architecture オペレーション(Operation):何らかのデータを扱うロジックや振る舞いだが、他のオペレーションのことを知らず、呼び出すことも許されていない。
データ(Data):データの構造であり、一貫性を保証するためにそのデータを扱うサービスを含んでもよいが、どんな形式のロジックも含まない。
インテグレーション(Integration):オペレーションと他のインテグレーションを呼び出して、すべてをまとめる。これによって振る舞いを生み出すが、ロジックを含まない。
APIおよびフレームワーク:これを通じてオペレーションは環境とやりとりする。

このモデルでは、オペレーションはデータにのみ依存し、インテグレーションはオペレーションと他のインテグレーションに依存する。これによって、機能的依存関係はすべて取り除かれるとWestphal氏は言う。そして残ったものが、フォーマルあるいは空の依存関係と呼ぶものになる。また、オペレーションは他のオペレーションを呼び出せないため、ロジックを新しいオペレーショナルメソッドに抽出することは、まとめるためのインテグレーションを作成し、アプリケーションに10-20行以下の小さなメソッドを作ることになる。

重要なところは、IODA構造は複数のレベルに見られるということだ。ある抽象レベルのオペレーションをズームインすると、それ自体が完全なIODA構造になりえるということだ。

Westphal氏はIODAを使った小さなアプリケーションの設計および実装例を作った。これには設計の背後にある基本的な考え方の説明が含まれており、コードをダウンロードすることができる。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT