<< ドメイン駆動設計とは要求開発である | main | ドメイン駆動設計・開発の実践 >>

昔は、DOA。今は、ROA。

DOA:データ指向アプローチ

最初にモデリングを覚えたころは、DOA ( Data Oriented Approach :データ指向アプローチ )。
T字型ERモデルなんかもちょっとはまっていた。

当時は、Oracle でコンサルタントで、Oracle データベースと、Oracle Developer2000 を使って開発。

Oracle の場合は、 DOA といっても、 Database Oriented Approach 、つまり、すべてデータベースを中心に考える設計思想。

テーブルを設計して、データ型や参照制約、必須属性などを綿密に宣言しておく。
そうすると、画面は、データベース定義内容からリバースエンジニアリングで生成できちゃう。

ドロップダウンリストなんかも、まず、テーブルを設計して、開発ツールで、テーブル名や Select 文を定義すると、できあがり、という感じ。

すべての情報操作は、テーブルに対する CRUD である、というのが基本思想。

ROA:リソース指向アプローチ

自然な流れというか、今は、ROAにどっぷり。
リソースはテーブルだけでなく、HTMLドキュメント、XMLドキュメント、さまざまなファイル、などなど。

メソッド名は CRUD とは似た感じで、

GET
PUT
POST
DELETE

の4つが基本。

ROA の場合、 新規作成は、PUT と POST がある。

PUT は、識別番号を、リソースを送る側が指定して新規作成。
POST は、リソースを受け取った側が、識別番号を発番して、新規作成。

データベースでも、一意識別キーは、重要な関心ごとだけど、一意識別番号の出所や管理責任は、実はあいまい。アプリケーションまかせ。

ROA の PUT と POST の使い分けのほうが、ドメインのモデルの枠組みとしては、進歩していると思う。

オブジェクト指向

DOA や ROA は、ドメイン駆動設計とは相性が良いと思う。

ドメインのオブジェクト、たとえば、customer や product を、

DOA : customer テーブル、 product テーブル
ROA : http://business.com/customer/1012, http://business.com/product/2546

てな感じで実装する。

DOA のテーブルや ROA のリソースは、振る舞いのない、静的な情報なので、オブジェクト指向とはいえないけど、ドメイン駆動設計のリポジトリの実装には、ぴったりとはまってくるわけです。

コメント
コメントする









この記事のトラックバックURL
トラックバック
calendar
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
<< July 2017 >>
システム設計日記を検索
プロフィール
リンク
システム開発日記(実装編)
有限会社 システム設計
twitter @masuda220
selected entries
recent comment
  • 番号より名前。 ニーモニックコードより名前。 【パターン】
    師子乃 (03/10)
  • Smart UI が優れている?
    masuda220 (03/10)
  • Smart UI が優れている?
    kagehiens (03/09)
  • オブジェクト指向プログラミングの教え方?
    masuda220 (12/05)
  • オブジェクト指向プログラミングの教え方?
    ZACKY (12/04)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (08/14)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    kompiro (08/14)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (06/13)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    JHashimoto (06/13)
  • 「オブジェクトの設計力」 スキルアップ講座やります
    masuda220 (02/28)
recent trackback
categories
archives
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM