skillup

技術ブログ

プログラミング全般

オブジェクト指向 プレゼンテーション層

投稿日:

本日も引き続き「現場で役立つシステム設計の原則」を読み進めてます。

本日はプレゼンテーション層、いわゆるMVCのViewにあたる部分。

プレゼンテーション層の考え方

要点

  • 画面ごとにプログラムを組むのではなく、関心ごとでプログラムを組む。そうしないと複数の画面でコードが重複する
  • 例えば詳細画面と登録確認画面は表示するデータの形式は一緒なことが多い。画面は違ってもプログラムは一緒
  • 関心ごとにより分け、画面の表示ロジックと業務ロジックを分離させる
  • 画面自体も機能ごとにわけ、あれもこれも詰め込まない(ECなら顧客氏名、注文内容、決済方法、配送手段、連絡先、注文確定などは分ける)
  • 画面の項目ごとに関心ごとをグルーピングする、あるいは画面自体を別にする。複数ステップ画面(タスクベースのユーザーインターフェイス)。1ページ、1メッセージ(プレゼント一緒!)
  • 画面とドメインオブジェクトが対応していないときは、ドメインオブジェクトの設計を見直す絶好のチャンス(関心ごとになっているのか?)。画面とドメインオブジェクトは利用者の関心ごとが一致するはず
  • 画面側のif文の分岐やcssの変更などもドメインオブジェクトの中に格納する。なぜならそれは関心ごとという枠組みだから。こうすることによりドメインオブジェクトだけを変更対象にすればOK。
  • 画面項目のグルーピング
    近接・・距離の近さは情報の近さ
    整理・・同じ意味のものは同じラインに。
    対比・・意味の重みの違いは文字の大きさや色の違いで区別
    反復・・同じ意味のものは同じパターンで

感想

画面項目を情報の意味でグルーピングするというのは、いろんな本でも書かれていたけど、基本ですね。今の業務アプリも特に注文画面にいろんな情報が詰め込まれており、あれもこれもになってしまっている。

というかデザインだけに限らずあらゆる領域で必要になってくる考え方だと思います。画面の分岐による変更ロジックをドメインオブジェクトの中に組み込む、というのは驚き(本書の中でもかかれていますが・・・)。ようはドメインオブジェクト=関心ごとなのだから、すべてドメインオブジェクトの中に入ってくるだろうということらしいんですね。

 

 

-プログラミング全般

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

バッチスクリプトで気をつけたい点

実務でバッチ処理を作る際に気をつけるべきと思ったこと。 基本的にエラーをいかに捉えていかにログに吐くかを最初に考える。まずはエラーありき。失敗するもの、想定した値がこない、あるいは値がないを前提として …

no image

アプリケーションアーキテクチャについて 〜ドメインモデルに関して〜

前回のトランザクションスクリプトパターンの反省から 今回はいわゆるドメインモデルの具体例に関して。 ドメイン駆動型設計には以下のような特徴があります。 大きく、アプリケーションの構成を以下のように分け …

no image

小〜中規模程度のWEBアプリ作成で気をつけるべきこと

初見の処理系(ライブラリ操作)などは休日などで最小パターンを確認しておくこと。実務で何時間も悩むと非常にストレスがたまる テーブル設計命。あとで終えるようにトレースができるような値を入れておくこと。 …

no image

正規表現その2

10/28に書いた正規表現に関しての追記です。 Contents1 覚えておきたいメタ文字2 留意点 覚えておきたいメタ文字 よく出るメタ文字の復習です。 メタ文字 メタ文字の説明 [] いずれかの1 …

no image

エラーレポーティングサービス Sentryについて

リリースした後、運用段階に入ると定期的にバグ報告が上がってきます。 本来はリリース前に研修テストをすべきなんですが、そんな余裕ないことも多い(汗) で、そんな時に大事なのが エラーを気づけること 対処 …