タグ

DDDに関するhikazohのブックマーク (17)

  • 境界づけられたコンテキスト 実装編 - ドメイン駆動設計用語解説 [DDD] - little hands' lab

    little-hands.hatenablog.com こちらの記事で説明できなかった、「境界づけられたコンテキストをどうやって実装に落とし込むのか?という話を書きます。 境界づけられたコンテキスト実装の基イメージ 結論からいくと、基的には、 1コンテキスト = 1アプリケーション と思ってもらってOKです。 これを基として、用途や実装コストと相談しながら少しずつ設計を組み替える検討が可能です。 1アプリケーション単位で、オニオンアーキテクチャ概略の記事で紹介したアーキテクチャを1セット揃えると思ってください。 つまり、こちらの記事で紹介した2つの境界づけられたコンテキストに対して、 以下のようにアプリケーションを2セット作ります。 ドメイン層を外界と隔離して、外部に公開するする操作を周りの層で定義するのです。 最終的に、マイクロサービス2つ作ると思ってもらって良いです。そうすると、

    境界づけられたコンテキスト 実装編 - ドメイン駆動設計用語解説 [DDD] - little hands' lab
    hikazoh
    hikazoh 2017/12/12
  • IDDD本から理解するドメイン駆動設計一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    IDDD本から理解するドメイン駆動設計一覧
  • ドメイン駆動設計のメリットと始め方 ~ 1章「DDDへの誘い」

    はじめに ドメイン駆動設計(DDD)とは、2003年にエリック・エヴァンス氏が『Domain-driven design』という書籍にて提唱したソフトウェア開発手法です。DDDを簡単に説明すると「顧客と開発者が業務を戦略的に理解し、共通の言葉を使いながらシステムを発展させる手法」です。具体的には、チームの共通言語である「ユビキタス言語」を用いて「ドメインモデル」を構築し、それをコードとして実装します。また大規模で密結合なシステムにならないように「ドメイン」と「境界づけられたコンテキスト」にてシステムを分割し、「コアドメイン」という最重要領域に集中して開発を行います。 ソフトウェア開発の課題とDDDが解決すること DDDの登場から10年以上が経ち、DDDは着実に普及しつつあります。DDDが普及してきている背景として、システム開発がますます多機能/複雑になり、ビジネス的にも敏速な変更が求められ

    ドメイン駆動設計のメリットと始め方 ~ 1章「DDDへの誘い」
    hikazoh
    hikazoh 2016/09/22
  • 『実践ドメイン駆動設計』読んだ - present

    ようやく読了。 長かった。 少しずつ読み進めて、読み終わるまで3週間かかった。 読み終わって思ったのは、DDD をまったく実践できていなかったな、 という反省。 DDD がどんなものかは分かっていたつもりだったけど、 エンティティやリポジトリ、レイヤー化アーキテクチャといった、 実装よりのものにばかり目がいってしまっていた。 境界づけられたコンテキストと、 その中で定義するユビキタス言語の力を甘く見ていた。 それに集約についての理解もまだまだだった その結果出来上がっているのは、 ほとんど DAO といっていいリポジトリや、 欠乏症のエンティティや、 あって無いような集約。 目も当てられない。 書は、架空の企業 SaaSOvation が DDD を実践して製品を開発する、 という形で DDD を解説している。 製品開発の過程で、間違いをおかしたり、問題に直面したりするけど、 それを D

    『実践ドメイン駆動設計』読んだ - present
  • ドメインモデル貧血症 - Martin Fowler's Bliki (ja)

    これはずいぶん昔からあるアンチパターンのひとつですが、今になって台頭してきているようです。 Eric Evans と話したのですが、彼も、それがだんだんポピュラーになってきていることに気づいていました。 私たちほど大の「真ドメインモデル」推進者としてみれば、ちょっとうれしくありません。 ドメインモデル貧血症の基的な症状は、一見、それが物のドメインモデルに見えるという点です。オブジェクトがいくつかあり、それらはドメイン空間にある名詞から名前をつけられています。それから、オブジェクト同士がしっかりとしたリレーションで結びついており、物のドメインモデルと同じような構造を持っているのです。 ただし、オブジェクトの振る舞いを見れば違いが分かります。それらのオブジェクトにはわずかな振る舞いしかない、ということに気づくと思います。 ドメインのロジックをドメインオブジェクトの中に入れないという設計ル

  • ドメインロジックとSQL - Martin Fowler's Bliki (ja)

    以下の文章は、Martin Fowler による Domain Logic and SQLの日語訳である。 データベース指向ソフトウェア開発者とメモリ上(in-memory)アプリケーションソフトウェア開発者との間のギャップは、ここ数十年、徐々に広がってきている。このギャップが原因で、データベースの機能(SQLやストアドプロシージャ)をどのように扱えばよいのかという議論が数多く巻き起こっている。ここでは、ビジネスロジックを SQL に置くべきか、それともメモリ上のコードに置くべきかといった問題について、主にパフォーマンスと更新性の観点から考察を行う。考察には簡単な例を使うが、SQL クエリはしっかりとしたもの(rich SQL queries)を用いるので悪しからず。 エンタープライズアプリケーション(訳注:以下、EA)構築に関する(私の近著『P of EAA』など)を読むと、ロジック

  • ドメイン駆動設計のためのオブジェクト指向入門

    関西DDD.java 勉強会 2016-3-5 (DDD Alliance 勉強会 2016-1-21 @東京の京都再演版)

    ドメイン駆動設計のためのオブジェクト指向入門
  • Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita

    DIを使わない状態ではUserRepositoryというインターフェースが定義されているのにもかかわらず、UserServiceはUserRepositoryImplの参照も持っていました。 これではせっかくインターフェースを分離した意味がありません。 UserServiceがUserRepositoryインターフェースだけを参照(依存)するようにすれば、具体的な実装であるUserRepositoryImplの変更に影響されることはありません。 この問題を解決するのがDIの目的です。 それではDIのインジェクタを加えて、上記のクラス図を修正しましょう。 謎のインジェクタの登場によりUserServiceからUserRepositoryImplへの参照がなくなりました。 おそらくインジェクタは何らかの手段でサービスであるUserRepositoryImpl(Dependency)をクライアン

    Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita
  • DDDに役立つScalaの関数型プログラミング的機能 - Qiita

    はじめに 今日あった増田さんのDDD Allianceの3週連続DDDの話を聞いてきた所、最後の質疑応答で、 「ScalaやHaskellなんかの関数型的な考え方が適応できるんじゃないか?」 という質問が聴講者の方から上がったのですが、 増田さん的には「まだ挑戦的試みの域を出ない」という回答があったので、 ScalaでDDDを2年近くやってきた者として、これは役立つよねという手法を紹介しようと思います。 正直な話、DDDも関数型プログラミングも学ぶのに根気のいる難しい概念にもかかわらず、 バズワード化していろんな人が違う意味で使うようになってしまったので、 正直最近こういう話を書きたいと思わなくなってしまったし、 イスラムのムジャーヒディーンと十字軍の両軍の前で正義の定義について演説することに 近いものがあると思うので、気は進まないながらも、役立つものを紹介しようと思います。 まず最初に前

    DDDに役立つScalaの関数型プログラミング的機能 - Qiita
  • 「ドメイン駆動設計」の複雑さに立ち向かう

    Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。iPride Co., Ltd.

    「ドメイン駆動設計」の複雑さに立ち向かう
  • はてな社内で開催したDDD勉強会の様子をご紹介します - Hatena Developer Blog

    こんにちは、id:hakobe932 です。 はてなでは有志が不定期の放課後勉強会を開催しています。今回は、ソウトウェア設計に興味のあるエンジニアがあつまって開催したドメイン駆動設計( = DDD)についての勉強会について紹介します。 実践ドメイン駆動設計を輪読 議論を中心にした形式 勉強会の成果 既存のソフトウェアの設計の整理と理解 ソフトウェア設計技術の習得 新しいプロジェクトの設計への活用 まとめ YAPCでも聞けます 最高に品質の良いソフトウェアをつくりたい! 実践ドメイン駆動設計を輪読 今年の3月に発売された、実践ドメイン駆動設計を輪読する形式で勉強会を行いました。 実践ドメイン駆動設計 (Object Oriented Selection) 作者: ヴァーン・ヴァーノン,高木正弘出版社/メーカー: 翔泳社発売日: 2015/03/17メディア: 大型この商品を含むブログ (2

    はてな社内で開催したDDD勉強会の様子をご紹介します - Hatena Developer Blog
  • これって、ドメイン駆動設計?

    エリックのDDDを読んで30分で挫折した僕が考える、こーゆーことをやるのがドメイン駆動設計なるものなんじゃないの、という資料です。

    これって、ドメイン駆動設計?
  • OOじゃないDDDについて - うさぎ組

    概要 モデリングについていろいろ - Togetterまとめを読んでいて、前にも何度か言ったことがあるけれど、もう一度言っておこうかー的な感じです。多分ブログには書いていませんでしたので。 端的に言えば、パイプ&フィルターパターンがアプリケーションドメインであるアプリケーションもあって、そういったものはオブジェクト指向より関数型的なほうがうまく適合する可能性もあるという話。 DDDとプログラミングパラダイムやプログラミングスタイルは直交するはずだ Eric Evansから提案されたDDDはクラスベースOOを主体とした実例が多かったわけですが、DDDという概念はOOを前提としていないと僕は捉えています。特に、ユビキタス言語、コンテキストの明示、モデリングと密接な開発といった部分は多くのソフトウェア開発において役立つと言えそうですし、おそらくはプロダクト開発全体でも言えそうです。 エンティティ

    OOじゃないDDDについて - うさぎ組
  • ドメイン駆動設計をかじってみる | TECHSCORE BLOG | TECHSCORE BLOG

    はじめまして!平奥と申します。 TECHSCORE BLOGに記事を投稿させていただくことになりました。 みなさま、よろしくお願いします! 今回は私が設計について学んでみようと思い、「エリック・エヴァンスのドメイン駆動設計」を読んだ内容を記事にしました。 感想としては率直に申しますとすごく抽象的で、読みづらいですが、有益な内容がたくさん書かれています。 こういう設計関連の学習をするときに、私が心がけているのが「完璧な設計はない。」ということです。 実は、ある設計思想に基づいて設計しているときに、その思想に完璧を求めるあまり解決できなくて 途方にくれた時がありました。 しかしもっと柔軟に設計を行い、その設計思想のコアなルールは守るというスタンスでよいのではと考えています。 他の設計思想と共存させ、そのプロジェクトにおいて最適な設計を行うことが大事だと考えています。 このことはエリック・エヴァ

  • DDDの思い出2つ - プロマネブログ

    年度末になると宿題の駆け込み・年末の道路工事と同じく急な案件見積もりや技術調査依頼なんてのが入るもんで、すっかりまいっておりました。 こういうのももうちょい計画的にやってくれたら楽なのに。。。 上記のエントリ見て2つほど思い出したことがあったので。 ドメインを甘く見てはいけない 仕事をやっていると、外部公演や外部研修といった場で他企業でエンジニアやマネージャやっていた講師の話を聞くことがあります。 で、その場で出た話。 講師「まず、プロジェクトを進めるためには、プロジェクトマネジメントやアーキテクチャ、プログラミングと言った開発能力が必要となります。」 当方「それらが必要なことは理解しておりますが、業務知識・ドメイン知識はより重要ではないのですか?」 講師「業務知識はユーザがもてば良いもので、開発者はそこまで重視しなくても大丈夫です」 この話。ずーっとモヤモヤしてたのですよね。 なんだかん

    DDDの思い出2つ - プロマネブログ
  • 1