タグ

DDDに関するten-gallon-Mouseのブックマーク (14)

  • 「実践ドメイン駆動設計」を読んだので、実際にDDDで設計して作ってみた! - Qiita

    こんにちは、クラウドワークスの新規事業のエンジニアとして仕事をしている高梨です! 最近、「実践ドメイン駆動設計」というを読みました! 500ページ近くもある技術書で、なかなか量は多かったのですが、DDDがどんなものなのか一通り大枠を掴めた気がします。 ただ読み終わった後にこんな疑念や不安をいだきました。 「たしかにかなり面白そうだけど、実際にやるとどれだけ工数かかるんだろう...?」 「設計の話は全然出てこなかったけど、DDDで作るとなるといったい何から始めればいいんだ?」 「戦術についての知識はついたけど、実際に書こうとしたらできなそうだな...」 そこで、そういった疑念や不安を解決するために、実際にDDDでサンプルプロダクトを作ってみようと思ったわけです。 実際に作ってみるのが、結局一番理解が進みますしね。 今回は、そのプロダクトがリリースされるまでの過程や感想を、作成した設計書やソ

    「実践ドメイン駆動設計」を読んだので、実際にDDDで設計して作ってみた! - Qiita
  • ヘキサゴナルアーキテクチャを利用したLambda 関数のドメインモデルの実装 Live

    ヘキサゴナルアーキテクチャを利用したLambda 関数のドメインモデルの実装 Live AWS Summit 2022 Developer Zone (dev-09) セッション資料です。

    ヘキサゴナルアーキテクチャを利用したLambda 関数のドメインモデルの実装 Live
  • 「実践ドメイン駆動設計」から学ぶDDDの実装入門の読了メモ – rinoguchi's techlog

    値オブジェクト or Stringやプリミティブ型 Stringやプリミティブ型の不都合 オブジェクト自身が複数のプロパティを組合せ管理できない 例えば、氏名とふりがなを同時に持てないし、姓と名を別々で管理することもできない オブジェクト自体が特別な振る舞いを持つことができない 例えば、郵便番号から都道府県を取得する振る舞いを持たせることもできない オブジェクトが自分自身の不変条件を定義できない 結果として処理開始時点のバリデーションに全て頼る形になり、どこかで値が変更されてないかを気にしながら利用する必要がある 例えば、電話番号は「数値」と「-」を含む10〜11桁の文字列という不変条件を担保したい 値オブジェクトは上記の不都合を解決できる なので上記のようなケースでは、値オブジェクトを利用すると良さそう とはいえ「3.」のケースを言い出すとなんでも値オブジェクトにしなくてはいけない気がす

    ten-gallon-Mouse
    ten-gallon-Mouse 2023/05/14
    “決まっている「区分」や「種類」を表すオブジェクトは”
  • クリーンアーキテクチャ完全に理解した

    clean_architecture.md 2020/5/31追記: 自分用のメモに書いていたつもりだったのですが、たくさんのスターを頂けてとても嬉しいです。 と同時に、書きかけで中途半端な状態のドキュメントをご覧いただくことになっており、大変心苦しく思っています。 このドキュメントを完成させるために、今後以下のような更新を予定しています。 TODO部分を埋める 書籍を基にした理論・原則パートと、実装例パートを分割 現在は4層のレイヤそれぞれごとに原則の確認→実装時の課題リスト→実装例という構成ですが、同じリポジトリへの言及箇所がバラバラになってしまう問題がありました。更新後は、実装時の課題リストを全て洗い出した後にまとめて実装を確認する構成とする予定です。 2021/1/22追記: パートの分割と、クリーンアーキテクチャという概念の定義について追記を行いました。大部分の実装例パートを中心

    クリーンアーキテクチャ完全に理解した
    ten-gallon-Mouse
    ten-gallon-Mouse 2022/11/10
    “ Case Output Port Flow of Controlを説明する際のOutput Dataの表現。 Output Data Output Boundaryへ渡す値。 Output Boundary Presenter(後述)のインターフェース。実装は下層レイヤーで行われる。 Repository Repository(後述)のインターフェース。Enterpri
  • テーブル設計を遅らせることでユーザー体験の最大化を狙える!?米国式最新開発手法「ADD」とは。。 - Qiita

    初めまして、記事に訪問いただきありがとうございますm(_ _)m 今までのプロジェクトでありがちな言い訳。。。 今からこの仕様変更をすると「テーブル設計」に影響が出るので工数がとてもかかります 今からこの仕様変更をすると「テーブル設計」に影響が出るので工数がとてもかかります 今からこの仕様変更をすると「テーブル設計」に影響が出るので工数がとてもかかります 今からこの仕様変更をすると「テーブル設計」に影響が出るので工数がとてもかかります 今からこの仕様変更をすると「テーブル設計」に影響が出るので工数がとてもかかります なんでこんなことが起こってしまうのか もう15年も前になるPOA vs DOA論争の結果、データ整合性のためにテーブル設計を一番初めに済ませることが一般的になりました。 【初級】ゼロから学ぶDOA 第1回 ですがこのやり方では実際の画面の動きをお客様が見る前に仕様を決めて、 そ

    テーブル設計を遅らせることでユーザー体験の最大化を狙える!?米国式最新開発手法「ADD」とは。。 - Qiita
  • Microservices分割大全 - kawasima

    Microserviceの分割の仕方について語られているものを収集します。 microservices.ioのサイトに載っている分割パターンは4つ。ただし「自己完結型サービス」と「チームごとのサービス」は、直交していないので大きくは「ビジネスケイパビリティでの分割」と「サブドメインでの分割」の2つ。 ビジネスケイパビリティでの分割 https://microservices.io/patterns/decomposition/decompose-by-business-capability.html 現在の業務機能にしたがってサービスを分割する。 したがって、コンウェイの法則にしたがった分割とされる。 サブドメインでの分割 https://microservices.io/patterns/decomposition/decompose-by-subdomain.html DDDのサブドメ

    Microservices分割大全 - kawasima
  • MVC、3 層アーキテクチャから設計を学び始めるための基礎知識 - Qiita

    はじめに アプケーション・アーキテクチャについて学ぶと「MVC」や「3 層アーキテクチャ」といった言葉にたどり着きます。 さらに勉強を進めると「MVVM」、「ドメインモデル」、「クリーンアーキテクチャ」など、よく分からない言葉がどんどん増えていきます。 また、「オブジェクト指向」を勉強しても、実際のアプリケーションでの使いどころが分からなかったりします。 この記事では、これらの用語の非常に分かりにくい関係を整理しました。 2 種類の 3 層 伝統的な Web アプリケーションは、以下のように 3 種類のサーバから成り立ちます。 このサーバ構成を 3 層アーキテクチャと言うことがあります。 一方、アプリケーションサーバで動いているプログラムの内部構造も、以下のように 3 層に分離することがあります。 これも 3 層アーキテクチャと言うことがあります。 この記事では、サーバの構成ではなく、アプ

    MVC、3 層アーキテクチャから設計を学び始めるための基礎知識 - Qiita
  • DDDのドメイン・サブドメイン・ユビキタス言語・境界づけられたコンテキストを整理する - Qiita

    この記事は ドメイン駆動設計 #2 Advent Calendar 2018 の 18日目 です。 前々日は @little_hand_s さんの「非エンジニアの方に「DDDって何なの?」と聞かれたときの説明」でした。 この記事の内容 ドメイン駆動設計(以下、DDD)に登場する、「ドメイン」「サブドメイン」「ユビキタス言語」「境界づけられたコンテキスト」「ドメインモデル」って、どう関連しているのかとか、それぞれの微妙な違いが分かりにくかったり、人によって解釈が異なっていた経験はないでしょうか? IDDD 2章の「問題空間」と「解決空間」がよくわかんないなぁ... 問題とその解決と言う2つの視点はわかるんだけど、「解決空間とは境界づけられたコンテキストのこと」ってのがわからん。 — Yohei TSUJI (@crossroad0201) 2018年12月11日 この記事では、書籍 「エリッ

    DDDのドメイン・サブドメイン・ユビキタス言語・境界づけられたコンテキストを整理する - Qiita
    ten-gallon-Mouse
    ten-gallon-Mouse 2020/06/11
    “ストのドキュメントやソフトウェア資産(コード、モジュール)など、あらゆる成果物も含まれます。 境界づけられたコンテキストは、この特定のモデルによ”
  • ドメイン駆動設計に関する何か - 日々常々

    2020-03-13追記: 「ドメイン駆動設計」のハードルを上げる意図はありません。そもそもそんな特殊技能でもないと思っています。「ドメイン駆動設計が合っているか」を測る材料になるかも?くらいの気持ちで読んでいただけると幸いです。 何度目か知りませんがDDDがまたブームを迎えているようで。DDD難民と言う言葉が出た頃を思うと感慨深いですね。実際難民になったわけではないので肌感覚で知らないのが残念なところですが、これはどうでもいい。 DDD、日語ではドメイン駆動設計となりますが、DDDを冠していてもドメインが語られることは少ないようです。 数ある書籍もドメインモデリングの話ではなく、ドメインモデルをいかに実装に落とし込むかにフォーカスしていると感じています。 これはこれで仕方ないと言うか、ドメインの話って広く語れないんですよね。 ドメインは領域で境界があって範囲が限定されています。特定ドメ

    ドメイン駆動設計に関する何か - 日々常々
    ten-gallon-Mouse
    ten-gallon-Mouse 2020/03/10
    “ドメイン駆動設計文脈で語られる実装技術は、前段このドメインと設計を連動させる際の受け皿の一実装です。上の図の右下のところ。「ドメイン駆動設計のコアドメイン」ではありません。無ければ片手落ちの理想論に
  • [ 技術講座 ] Domain-Driven Designのエッセンス -目次-|オブジェクトの広場

    技術講座] DDD難民に捧げる Domain-Driven Designのエッセンス 第 1 回 ドメイン駆動設計とは 第 2 回 DDDの基礎と実践 第 3 回 大規模なプロジェクトへの適用 DDDパターンカタログ パターン名 参考訳 I. Putting the Domain Model to Work Ubiquitous Language ユビキタス言語 Model-Driven Design モデル駆動設計 Hands-On Modeler 実践的モデラー II. Building Blocks of a Model-Driven Design Layered Architecture 層状アーキテクチャ Smart UI (アンチパターン) 利口なUI Entities エンティティ Value Objects 値オブジェクト Services サービス Modules モジ

  • ボトムアップドメイン駆動設計

    はじめに この記事は前後編に分かれています。 順序だてた解説になっているので最後までお付き合いいただけると幸いです。 後編記事: https://nrslib.com/bottomup-ddd-2/ 順序立っての説明になっておりますので、前編からご覧になることを強くお勧めします。 セミナー情報 こちらの内容のセミナーを不定期で開催しています。 ◆セミナーページ 第一回: https://ddd-community-jp.connpass.com/event/103428/ 第二回: https://ddd-community-jp.connpass.com/event/107106/ 第三回: https://nrs-seminar.connpass.com/event/117283/ ◆あとがき 第一回ボトムアップドメイン駆動設計勉強会を開催しました セミナースライド まえがき この章は

    ボトムアップドメイン駆動設計
  • [DDD]ドメイン駆動 + オニオンアーキテクチャ概略 - Qiita

    DDD連載記事 なぜDDD初心者はググリ出してすぐに心がくじけてしまうのか ドメイン駆動設計の定義についてEric Evansはなんと言っているのか モデルでドメイン知識を表現するとは何か ドメイン駆動設計で実装を始めるのに一番とっつきやすいアーキテクチャは何か ドメイン駆動 + オニオンアーキテクチャ概略 背景 ドメイン駆動設計で実装を始めるのに一番とっつきやすいアーキテクチャは何かの記事で、オススメしていたのはオニオンアーキテクチャでした。 今回は、オニオンアーキテクチャについて詳しく説明したいと思います。 上述の記事でも書いた通り、「ヘキサゴナル、オニオン、クリーン」の3つは、質的には全く同じで、思想としてはヘキサゴナルで完成されているのですが、より具体的に説明されているオニオンアーキテクチャから説明を読んだ方が理解がしやすいと思います。 その後にヘキサゴナルの説明を読むと「なるほ

    [DDD]ドメイン駆動 + オニオンアーキテクチャ概略 - Qiita
    ten-gallon-Mouse
    ten-gallon-Mouse 2020/02/21
    “る他の事例としては、メール送信サービスを最初は自作していたところから、より高機能な外部サービスに切り替えたくなる、というケースは現実的に想像がつくのではないでしょうか。 これはつまり、「ドメインモ”
  • ドメイン駆動設計 #1のカレンダー | Advent Calendar 2018 - Qiita

    ドメイン駆動設計(DDD)に関するアドベントカレンダー。DDDに関することであればなんでもOK。 「エリックエヴァンスの」としてないので、ドメインを扱う設計手法であればOKです。実践ドメイン駆動設計でも、CQRS(Event Sourcing), クリーンアーキテクチャとかでもよいですが、必ずドメイン駆動設計にどう関係するか書いてくださいね。 あと、議論のきっかけにできればよいと思いますので、入門的なこと・高度なこと・成功したこと・失敗したこと・改善の余地などハードルは下げますので、自由に書いてください。 推奨ハッシュタグ #ドメイン駆動設計 ドメイン駆動設計 #2 Advent Calendar 2018 もあります! https://qiita.com/advent-calendar/2018/ddd-2

    ドメイン駆動設計 #1のカレンダー | Advent Calendar 2018 - Qiita
  • PlantUMLを通じてドメインモデル図の書き方を学ぶ - EurekaMoments

    ダイアグラム別UML徹底活用 第2版 作者:井上樹翔泳社Amazon 目次 目次 はじめに プロジェクトの開始時にやるべきこと ドメインモデル図とは ドメインモデル図を描く手順 1. 「名詞」の抽出 2. モデル同士の関係を線と矢印で表す 3. 中心となるモデルに色を付ける ドメインモデル図を用いる際の注意点 ドメインモデル図の活用方法 ドメインモデル図の作成例 例1. 認証システムの場合 例2. 課金システムの場合 例3. 屋の場合 例4. 投稿システムの場合 GitHub 参考資料 はじめに ソフトウェアの仕様書、設計書の作成や管理を効率化するために、Markdown + PlantUMLによる作成方法を日々模索しています。 しかしながら、そもそもUML図の正式な書き方というものをちゃんと分かっていないというのが正直なところなので、PlantUMLを通じてUMLの各種図の書き方を勉強

    PlantUMLを通じてドメインモデル図の書き方を学ぶ - EurekaMoments
  • 1