勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

金融アプリサンプルでよちよちDDDを学ぶ

InfoQで「ドメイン駆動設計とは - 金融取引アプリケーションを例に」という記事が公開されていたのだけれど、これだけではさっぱり分からない。というわけで元記事をたどっていろいろと学んでみようと思う。学習記録なので、内容についてはまったく自信はございません。
http://www.flickr.com/photos/8047705@N02/5427063703
photo by LifeSupercharger

どういう話なのか

ドメイン駆動設計(DDD)とは,ビジネス目標を達成する上で,ドメインの専門家と開発者,その他の関係者のコラボレーションを重視したソフトウェア開発アプローチだ – Naresh Bhatia氏は,DDDの基本コンセプトをこのような説明で紹介し,比較的理解が容易と思われる金融取引のドメインから,中程度の複雑性を持ったシステムであるBullsfirstを例として選択した。

とあるけれども、実際のところはNeresh Bhatia氏がソフトウェア開発の研究用に作成した「Bullsfirst」という株トレードのサンプルアプリケーションを題材にしてDDDを解説するという話である。
ちなみにBullsfirstのコードは最初はgoogle codeにあったようだが、現在がgithubに移っている模様。

(ちなみにgithubには他にも trader-desktopという別のサンプルアプリもあってreadmeが興味深い)

Bullsfirstについて

さて、サンプルアプリケーションであるBullsfirstであるがデモシステムを動かすことが可能である(この記事から入れる)。というわけでいろいろ動かしながらどんなシステムなのかをざっと確認してみる。

  • ブローカーが顧客向けに提供するオンライントレードシステムである。
  • 主要な機能
    • アカウント作成
    • ログイン
    • ポートフォリオ管理
    • 各口座のポジション管理
    • 株式売買注文(即時 or リミットを設定して自動売買)
    • 口座間の株式/資金移動
    • 外部口座への株式/資金移動
    • 売買履歴の表示
    • 株式/資金移動履歴の表示

次回につづく(たぶん)