2013-01-01から1年間の記事一覧
前回モック用に作ったインターフェースを利用して、PlaceOrderServiceのテストコードを書きます。 @RunWith(JMock.class) public class PlaceOrderServiceTests extends TestCase { private PendingOrderRepository pendingOrderRepository; private Pending…
テストケースに対するアプリ側のコードを実装します。 public class PlaceOrderServiceImpl implements PlaceOrderService { private PendingOrderRepository pendingOrderRepository; public PlaceOrderService(PendingOederRepository repository) { this.…
updateDeliveryInfo()が呼ばれるとき、PlaceOrderServiceはPendingOrderを読み出すか、存在しなければ生成する。 まずは、大枠として以下のシナリオを想定する。1) 入力されたデリバリ時刻が未来日時で、デリバリ情報に該当する少なくとも1つのレストランが…
最初にメソッドupdateDeliveryInfo()を実装します。 その後、updateDeliveryInfo()の中で呼ばれるPendingOrderのメソッドを実装します。 また、必要とされるリポジトリも識別し実装します。まずは、サービスのメソッドを実装。 public interface PlaceOrderS…
これから実装を行っていくにあたり、環境を記しておきます。 使用するライブラリは順次追加していくつもりです。JDK: Java SE 6 update31 Tomcat:Tomcat 6.0.35 開発ツール:Spring Tool Suite(STS) 3.0.0Maven Dependenciesライブラリ: No. GroupID Artifa…
前回、システムイベントメッセージを抽出しましたので、それをもとにシステムシーケンス図を作成します。 システムシーケンス図については、書籍「実践UML」が参考になります。 とりあえず、最初のメッセージにだけ、引数を入れてみます。 [参考]
ユースケースから、お客のリクエスト(システムイベントメッセージ)を抽出します。そのシステムイベントメッセージ毎にメソッド名をつけます。 No. システムイベントメッセージ 説明 メソッド 1 Enter delivery Info お客がデリバリー情報を入力する。 Upad…
クラスの振る舞いを定義するために、クラスの責務やコラボレーションを識別する必要があります。 そのための方法はいろいろとありますが、本サンプルでは、以下の流れでクラスの責務やコラボレーションを識別します。 リクエストの識別・・・ユースケースや…
ドメインクラス図にServiceとRepositoryを追加します。
ドメインクラス図のクラスを、役割によってカテゴライズします。 本サンプルでは、書籍「ドメイン駆動設計」より以下の役割けを利用します。 エンティティ(Entities) エンティティは、識別子を必要とするオブジェクト。本サンプルでは、PendingOrder、Orde…
一発目のドメインクラス図です。 OrderとPendingOrderを一つにまとめてもよいのですが、複雑になるのでとりあえず別々に分けました。 今後ブラッシュアップしていきます。
ドメインモデルパターンを使ったアプリケーションを作成するので、 お馴染みのプレゼンテーション層、ビジネス層、永続化層の3階層で構成します。 ドメインモデルがビジネス層のコアとなり、プレゼン層やファサード層によって呼び出されます。 永続化が必要…
今回使うサンプル・アプリケーションは、 料理の配達専門会社(Food To Go Inc.)がお客から料理の配達を受付するシステムです。 ユースケースはいろいろと想定されますが、1つ抜粋して、お客が注文する部分のユースケース「Place Order Use case」を扱います…
今後いろいろな題材を元に、ドメイン駆動開発(DDD)を勉強&実践していきます。まずは、書籍「POJOs IN ACTION」からのサンプルアプリを利用します。この本は、日本語に翻訳されていないので、マイナーかもしれませんが、 DDDをベースにして設計~実装まで解…
現場では、相変わらず当たり前のように、DOAに基づく構造化手法での開発。 いつかは、実業務でドメイン駆動開発したいが、下請け的な開発が多いため、難しい。。。ということで、不満を抱えたまま過ごすのもアホらしいので、この場を借りてドメイン駆動開発…