無料マンガ・ラノベなど、豊富なラインナップで201万冊以上配信中!
ドメイン駆動設計の定番書 問題解決にフォーカスした設計パターン
「この本は、思慮深いソフトウェア開発者全員の必携書である。」
---Kent Beck 氏推薦
「Eric が見事にとらえたのは、熟練のオブジェクト設計者が常々用いてきた設計プロセスの
一部でありながら、グループとして見ると、この業界の他の人々へうまく伝えられずにいたものだ。
これまで我々は、この知識を断片的には提供してきた。
しかし、ドメインロジックを構築するための原理をまとめ上げ、体系化したことはなかった。
本書は重要である。」
---『Enterprise Java Programming with IBM WebSphere』の著者 Kyle Blown氏 推薦
ソフトウェア開発コミュニティでは、ドメインモデリングがソフトウェア設計の中心であることが広く認められてきています。ドメインモデルを通して、ソフトウェア開発者は豊富な機能を表現し、それをユーザの要求に本当の意味で応えるソフトウェアの実装に移すことができます。しかし、明らかに重要であるにもかかわらず、効果的なドメインモデリングをどのようにソフトウェア開発プロセスに組み入れるかを説明する、実用的なリソースはほとんど存在しませんでした。ドメイン駆動設計はこの要求に応えるものです。これは具体的な技術についての本ではなく、読者にドメイン駆動設計への体系的なアプローチを提示するものです。設計のベストプラクティスの応用的なセット、経験に基づくテクニック、さらに、複雑なドメインに直面するソフトウェアプロジェクトにおける開発を容易にする基本原則を紹介する一冊です。
【原書タイトル】Domain-Driven Design: Tackling Complexity in the Heart of Software 本書で学べること チームメンバー全員に同じ言語で会話をさせる モデルと実装をより深く結びつける ポイントとなる特徴を、モデルにおいてはっきりさせる ドメインオブジェクトのライフサイクルを管理する 安全に結合できるドメインコードを入念に作成する 複雑なコードを明白で予測できるものにする ドメインビジョン声明文を記述する 複雑なドメインのコアを蒸留する モデルに必要な、暗黙的な概念を掘り出す アナリシスパターンを適用する デザインパターンをモデルに関係づける 巨大なシステムでモデルの整合性を維持する 同じプロジェクトで複数のモデルが共存できるようにする 大規模な構造によりシステムを構成する モデリングのブレイクスルーを認識して、それに対応する
著者紹介 Eric Evans(エリック・エヴァンス)
Eric Evansは、Domain Languageの創設者である。このコンサルティンググループは、企業の手助けをして、ビジネスと深く結びついた、進化するソフトウェアを構築するために設立された。1980 年代以来、Ericはいくつかの複雑なビジネスドメインや技術ドメインにおける巨大なオブジェクト指向システムに対し、設計者兼プログラマとして取り組んできた。また、エクストリームプログラミングを実践する開発チームの教育と指導も行っている。
※本電子書籍は同名出版物を底本とし作成しました。記載内容は印刷出版当時のものです。
※印刷出版再現のため電子書籍としては不要な情報を含んでいる場合があります。
※印刷出版とは異なる表記・表現の場合があります。予めご了承ください。
※プレビューにてお手持ちの電子端末での表示状態をご確認の上、商品をお買い求めください。
※アプリの閲覧環境は最新バージョンのものです。
Posted by ブクログ
「ドメイン駆動設計」なるものは何なのか。
例えばテスト駆動開発であれば、テストを実装しそこからレッド→グリーン→リファクタリングと進んでいく。
ではドメイン駆動設計はドメインが起点かというと、むしろリファクタリングしながらドメインを浮き彫りしていく彫刻のようなアプローチが望ましいようだ。
(第八章ブレイクスルーのあたりにくわしい)
一度通読しただけで完全に理解できるような代物ではないが、いかにしてコード、そして設計にドメインを注入していくのかというコア部分は必読。
第4部、戦略的設計は内容的にも入り組んでおりやや難解に感じた。再読が必要だ。
重厚で、かつ内容を噛み砕きながら読む必要があるため相応の覚悟は必要。
Posted by ブクログ
初見だと新しい概念が大量に出てきて、理解できないままどんどん話が進んでいきます。
それもあり放置していた本ではあったのですが、DDDで設計されたプロジェクトに入った機に再読。
実際に触りながら読むと、前より理解しながら読み進めることができました。
時代背景も今と違うため、素直に全てを受け止めるのではなくどんな理由があってなにを解決するために生まれたものかを理解するのが大事かと思われます。
特にアーキテクチャとしての戦術的DDDをDDDの全てとして受け止めてる人も多く、その辺りが曖昧になると本質を見失ってしまいそうです。
1回読んだだけで理解できる本ではないため、実践を繰り返しながらより深い理解を進めていきたいと思います。
Posted by ブクログ
本書は「ドメイン駆動設計」という、ソフトウェア・システムのモデリングおよび設計手法について説明したものである。
ドメイン駆動設計は「ドメイン知識駆動設計」とよぶ方がわかりやすいと思う。
これは、業務のモデリングおよびシステムの設計に、クライアントであるドメインエキスパートと共通の語彙を使ってモデリングから設計の詳細までを行おうという手法である。
これによりモデルと実装が乖離することがなく、ドメインエキスパートおよびソフトウェア・エンジニアがつねに対話しながら、彼らの知見を活かしてモデルとシステムを改良し続けられるとしている。これが本書のメインテーマである。
そして、モデルをシンプルにするために、値オブジェクトやimmutableなオブジェクトを使うことを推奨し、コンポーネントの疎結合化、レイヤー化の導入を提案する。これが本書のサブテーマである。
ただし、既存のシステムが存在する場合などでは、全て理想的に行くとは限らないので、その場合の解決・妥協方法について本書の後半で述べられている。
実際にシステムを構築した人でないと後半は漠然としていてわかりにくいが、前半は例を用いて明確に書かれており、それだけでも本書を読む価値はあると思ったので★4つとする。
※アプリの閲覧環境は最新バージョンのものです。
ビジネス・実用
ビジネス・実用