🎢
GUIアーキテクチャ草稿:工程指向設計(Flow Oriented Design)
コンポーネント(部品)指向
現在(2021年)コンポーネント指向での設計が一般化している。
コンポーネント指向は、コンポーネントを中心にモジュールをつくる。
この場合、アプリケーション全体でデータの受け渡しを考えると、複雑化し、コンポーネントの関わりを考えるのが難しい。
フロー(工程)指向
フロー指向は、データの変化、処理をベースに考える。
コンポーネント指向を否定するのではなく、それを包摂して、コンポーネント間のモジュール設計を考える視点。
コンポーネントはデータと同じような位置づけで、あくまでも純粋に関係するelementに関する処理、また、それに密接に絡むstateのみを保持する。
コンポーネントは工程に対して従属的な存在となる。
複合的なコンポーネントやデータの関係性がわかりやすくなる。
コンポーネントは従来どおり、単純な機能(elementに関する定義の集合)として存在する。
共有データを考えた場合、グローバルで保持する方がコンポーネント間のバケツリレーをせずに済む。ただし、この場合、データの流れがわかりにくくなりバグを引き起こしかねない。
であれば、逆に、データの流れを中心に処理をつくり、そこにコンポーネントを呼び出す方がわかりやすく、トランザクションをつくることができ、関係しないコンポーネントによる読み書きをロックしやすい。
Discussion