タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

DDDと設計に関するtgkのブックマーク (4)

  • DDDにおいてRDBMSとのインピーダンスミスマッチをどう扱うべきか?

    Ryo Asai @ryoasai74 なるほど。P157「一般的に言えることだが、使っているフレームワークとは争わないこと。フレームワークと対立してしまった時には、ドメイン駆動設計の基を保ちながら、詳細は捨て去る方法を模索すること。」#DDDjp 2011-04-30 20:20:19 Ryo Asai @ryoasai74 P160「データベースをオブジェクトの格納先として見る場合には、マッピングツールの能力に関わらず、データモデルとオブジェクトモデルをかけ離れたものにしてはならない。」これは読み落としてはならないことですね。モデルと実装を結びつけ、無駄な間接層による複雑さを避けるべき。#DDDjp 2011-04-30 21:01:35

    DDDにおいてRDBMSとのインピーダンスミスマッチをどう扱うべきか?
    tgk
    tgk 2014/03/16
    DDDのモデルからデータ構造を導出したら、そのアプリ専用のDBにならざるを得ない。これはエンタープライズでは致命的。逆にデータ構造をDDDのモデルから独立に作るとマッピングの工数が悲惨なことになる。どうすんの
  • DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien - Digital Romanticism

    この記事はartima developerに掲載されている、Trygve Reenskaug氏とJames O. Coplien氏による記事「The DCI Architecture: A New Vision of Object-Oriented Programming」を、著作権者であるBill Bennrs氏の許可を得て翻訳したものです。文内の図の著作権はArtima, Inc.に帰属します。(原文公開日:2009年3月20日) 要約 オブジェクト指向プログラミングはプログラマとエンドユーザの視点をコンピュータコードにおいて統一するものと考えられていた。この恩恵はユーザビリティとプログラムの分かりやすさの両面にわたる。しかし、オブジェクトは構造をとらえるのに長けている一方で、システムの動作をとらえることができていない。DCIはエンドユーザのロールに関する認識モデルとロール間の関係を

    DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien - Digital Romanticism
    tgk
    tgk 2014/01/05
  • DCIアーキテクチャへの違和感から見えてくるユースケースDSL - 石橋秀仁(zerobase)書き散らす

    DCIとDDD DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien - Digital Romanticismを読んだり、DCI meetup w/ @jcoplien for Rubyistsに参加したりして、DCIアーキテクチャについて考えてきた。 DCIはメッセージパッシング指向だ。そのSmalltalk的なオブジェクト指向の原理はいいけど、実装が嫌だ。 そもそも、DCIアーキテクチャ提唱の目的は、メンタルモデルのセマンティクス・ギャップを埋めることだ。DDDの「ユビキタス言語」も、メンタルモデルのセマンティクス・ギャップを埋めるための要素であり手法だ。だから、ふつうにDDD(ドメイン駆動設計)をやればいいと思った。 DCIへの疑問 DCIでは、「オブジェクトのアイデンティティ」にこだわりすぎていることで、アーキテクチャが複雑になって

    DCIアーキテクチャへの違和感から見えてくるユースケースDSL - 石橋秀仁(zerobase)書き散らす
    tgk
    tgk 2014/01/05
    「Decoratorではダメだから、動的にRole(役割)を着脱するためにはtraitという言語仕様が必要になる}
  • ドメインモデルの関連を表現するには - じゅんいち☆かとうの技術日誌

    たとえばこんなモデルがあって、相互に依存しているケースを考えよう。 注意:説明を簡単にするために、varを利用しています。 従業員1 2 3 4 5 class Employee( val id: Long, val name: String, var depertment: Option[Depertment] = None ) 部署1 2 3 4 5 class Depertment( val id: Long, val name: String, var employees: Seq[Employee] = Seq.empty ) 利用例1 2 3 4 5 val employee = new Employee(1, "KATO") val depertment = new Depertment(1, "Dev") employee.depertment = Some(depertm

    tgk
    tgk 2013/12/31
    コードでドメインを表現することの困難の例「そもそもvalだと相互参照の関連の取り扱いに無理があることがわかります」
  • 1