🎢

GUIアーキテクチャ草稿:工程指向設計(Flow Oriented Design)

2021/05/18に公開

コンポーネント(部品)指向

現在(2021年)コンポーネント指向での設計が一般化している。
コンポーネント指向は、コンポーネントを中心にモジュールをつくる。

この場合、アプリケーション全体でデータの受け渡しを考えると、複雑化し、コンポーネントの関わりを考えるのが難しい。

フロー(工程)指向

フロー指向は、データの変化、処理をベースに考える。
コンポーネント指向を否定するのではなく、それを包摂して、コンポーネント間のモジュール設計を考える視点。

コンポーネントはデータと同じような位置づけで、あくまでも純粋に関係するelementに関する処理、また、それに密接に絡むstateのみを保持する。

コンポーネントは工程に対して従属的な存在となる。

複合的なコンポーネントやデータの関係性がわかりやすくなる。
コンポーネントは従来どおり、単純な機能(elementに関する定義の集合)として存在する。

共有データを考えた場合、グローバルで保持する方がコンポーネント間のバケツリレーをせずに済む。ただし、この場合、データの流れがわかりにくくなりバグを引き起こしかねない。
であれば、逆に、データの流れを中心に処理をつくり、そこにコンポーネントを呼び出す方がわかりやすく、トランザクションをつくることができ、関係しないコンポーネントによる読み書きをロックしやすい。

Discussion