オブジェクトベースのUIデザインはDrupalベースのサイトでも応用可能だと思う

偶然『OOUI – オブジェクトベースのUIモデリング』という記事に出会った。秀逸な記事だと思う。十分簡潔で、UI設計を行う時にオブジェクト(名詞)を意識することの重要性が腹落ちする。Drupal視点で解釈してみた。恐縮だが、以下を読む前に引用記事に目を通していただきたい。

Drupalだとnodeがオブジェクトの表現になる。それを見せるためにmanage displayの定義があり、nodeを選択すると編集権限のある人には、View、Edit、Delete、Translate等の操作が表示される。コンテント管理の操作としては正しい。引用記事でいう「すなわち、ユーザーの関心の対象であるオブジェクトをクラスとして定義し、それをそのままスクリーンに登場させるのです」のクラスがContent typeでありオブジェクトはnodeとなっている。

一方で、アプリケーションとして考えた時は、操作は違う。nodeが自販機の缶ジュースなら、操作は「買う」である。利用者ロールから見た操作はCMSの基本機能には含まれ得ない。nodeに付随する操作は別途設計し実装する必要がある。

オブジェクトベースUIのDrupal実装を考えると、webformのBlockを配置すれば、「買う」ボタンはプログラムレスで配置できる。研究会のセッションであれば、「予約する(チケットを買う)」、「予約を取り消す」、「入場する」、「評価する」といった操作を定義することになるだろう。もちろん状況によって選択できるものは異なるから、ViewsのBlockを配置して制御することになるかも知れない。

残りは、ビジネスロジックをどう実装するかという事になるが、これが難しい。先日調査したBusiness rulesである程度作れる事は分かっているが、自由度は今の所限定的だ。CMSの基本UIは特定のContent typeに閉じているのが原則となるが、アプリケーションの操作は特定nodeに閉じていたら意味がない。他のnode等のEntityに影響を及ぼすような操作を特定のnodeのUIに追加する開発と言える。そういう意味では、webformを使うことで、他のEntityとの関係を疎結合にでき、拡張性の高い柔軟な実装が可能になる。

Drupal上でwebformbusiness rulesを利用したデザインパターンは構築可能だろう。roleモデルを考えるとGroupとWorkflowsとのインテグレーションが重要になると思う。D9の時代には相当しっかりとしたアプリケーションが構築可能になるだろうと期待している。

Webサイトの作成ツールやCMSのUIが能力向上して、ついついすぐ制作に入ってしまいがちであるが、やはりコンテンツのモデリング、UXのモデリングはやった方が良いと思う。アジャイルと無謀は違う。

蛇足になるが、オブジェクトに対して操作が決まるという考え方はUIモデリングの問題で、BPMNのコラボレーションモデルのような動線定義と組み合わせることでUXをデザインする事ができると考えている。権限のモデリングをどう表現すれば良いのかはまだ分からない。実装のモデル化はできるが、UX視点での権限モデル表現は難しい。

タグ