タグ

DDDに関するmachupicchubetaのブックマーク (7)

  • ドメイン駆動設計の比類なきパワーでRailsレガシーコードなど大爆殺したるわあああ!!! - Qiita

    この記事は クラウドワークスアドベントカレンダー2019 12日目の記事です。 概要 こんにちは、怒り駆動リファクタリングを生業としている @MinoDriven です。 弊社リファクタリング専門チーム「バグハンター」で現在実施中のリファクタリング設計について紹介致します。 ドメイン駆動設計 を用い、Railsレガシーコードに対しViewとControllerを ActiveRecord非依存 に変更する設計です。 状況 弊社ブログの過去エントリにあるように、弊社サービスcrowdworks.jpはサービスインから8年経過し、 30万行 を超えるモノリシックRailsアプリになっています。 開発生産性が低下してきています 。 生産性低下の課題を解決しようにも、大規模な上に複雑かつ密結合な構造になっており、 マイクロサービスへの移行も、リプレイスも困難な制約 があります。 そこで半年前にリフ

    ドメイン駆動設計の比類なきパワーでRailsレガシーコードなど大爆殺したるわあああ!!! - Qiita
  • CQRS実践入門 [ドメイン駆動設計] - little hands' lab

    この記事では、CQRSの入門として、軽量CQRS、別名クエリモデルについて解説します。 DDDの参照系処理で発生する課題 解決策 CQRSのメリット、デメリット 実装時の注意事項 部分的導入について なぜQueryServiceの定義がUseCase層なのか 整合性をどうやって担保するのか よくある誤解 データソースを分ける必要があるのか イベントソーシングとの関係 過去資料との繋がり もっと詳しく知りたい方は 現場での導入で困ったら DDDの参照系処理で発生する課題 DDDで定義されている実装パターンを使っていると、基的には永続化層との入出力はRepositoryを使うことになります。 更新系の処理ではEntityやValueObjectでドメインの知識を表現し、Repositoryを使って集約単位で永続化するという構成をとると、非常にメンテナンス性の良いものになります。 参考過去記事

    CQRS実践入門 [ドメイン駆動設計] - little hands' lab
  • 【登壇レポート】「ドメイン駆動設計を導入するためにやったこと」に、弊社エンジニア・ミノ駆動が登壇しました! - READYFOR Tech Blog

    こんにちは、READYFOR Tech Blog編集チーム・西和田です。 2022年1月17日(月)に開催されたイベント、「ドメイン駆動設計を導入するためにやったこと」 に、READYFORのバックエンドエンジニア、仙塲(ミノ駆動 @MinoDriven)が登壇しました!記事では発表内容とご視聴いただいた方のコメントをアーカイブとしてまとめています。当日お聞きになれなかった方、また改めて見返したい方は是非御覧ください。 登壇者について ミノ駆動 @MinoDriven エンジニアリング部 システム基盤部 バックエンドエンジニア 仙塲 大也(ミノ駆動) READYFORに2021年4月に入社 仙塲のSNSその他のブログは以下となります。 Twitter:ミノ駆動 @MinoDriven Tech Blog:リファクタリング効果を促進する組織ビジョン「乳化」 発表内容について 大きくなりす

    【登壇レポート】「ドメイン駆動設計を導入するためにやったこと」に、弊社エンジニア・ミノ駆動が登壇しました! - READYFOR Tech Blog
  • Home - Domain Language

    Live workshops on Software Design, Modelling, Programming, and Practices >>> more info <<< About Domain Language We are a small consultancy focused on Domain-Driven Design (DDD) and led by Eric Evans, who wrote the first book on DDD. Our video-based course on Domain-Driven Design (DDD) is just over 5 hours of tightly edited video.  This self-guided course focuses on the deep concepts of DDD, expla

    Home - Domain Language
  • Railsドメイン設計: イベントソーシングでCQRS Read Modelが基本的に必要な理由(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Why Event Sourcing basically requires CQRS and Read Models | Arkency Blog 原文公開日: 2017/11/28 著者: Robert Pankowecki サイト: Arkency Blog 日語タイトルは内容に即したものにしました。 用語 CQRS: コマンドクエリ責務分離(Command Query Responsibility Segregation) 参考: CQRS + ESについてのまとめ - 記録 CQRS Read Model: Query Modelとも呼ばれ、データの読み出しをデータの書き込みから分離します。CQRS Write Modelと対になります。 参考: The Read Model · Nick Chamberlain イベン

    Railsドメイン設計: イベントソーシングでCQRS Read Modelが基本的に必要な理由(翻訳)|TechRacho by BPS株式会社
  • DDDで設計するならCQRSの利用を検討すべき - Qiita

    タイトルに書かれていることで全てなのですが、DDDとCQRSの併用について強調している日語の情報が少ないので、軽くまとめておきます。 CQRS+DDD CQRS(コマンドクエリ責務分離)とは、サーバの機能を「コマンド」(副作用あり)と「クエリ」(副作用なし)で完全に分けちゃおう、という考え方です。そもそも「コマンド」と「クエリ」ではあらゆる要件が異なります。 一貫性: 「コマンド」は整合性のある処理が必要、「クエリ」はあまり気にする必要なし ストレージ: 「コマンド」側は正規化してデータを保存したい、「クエリ」側は非正規な方が効率的 スケーラビリティ: 「コマンド」は全体の負荷の中で占める割合が少ない、「クエリ」は負荷が大きい なので分けちゃうわけですが、 コマンド側 複雑なビジネスロジックが絡むので、ドメイン駆動が活躍 クエリ側 複雑なビジネスロジックがないので、ドメイン層はスキップ

    DDDで設計するならCQRSの利用を検討すべき - Qiita
  • Scalaコードでわかった気になるDDD | GREE Engineering

    みなさん、こんにちは。グリーのかとじゅん(@j5ik2o)です。 このエントリは GREE Advent Calendar 2013 の 18日目の記事です。よろしくお願いします。 私がグリーに入社してやっていることは、プログラミング言語 Scalaとドメイン駆動設計(以下、DDD)の布教活動です。布教活動といっても宣伝するだけでは具体性に欠けるので、実際に開発チームに入ってScalaやDDDの技術支援を行っています。エントリでは、Scalaを用いたDDDの設計と実装をどのように行っているかを、DDDを知らない人でもできるだけわかりやすく説明したいと思います(Scalaわかっていると読みやすいですが、あんまり複雑なコードは出てこないのでなんとなく読めるのではないかと思います)。なお、DDDの実践例は他にもあります。一例だと思って読んでいただければ幸いです(先日のSNSチームでのドメイン駆

    Scalaコードでわかった気になるDDD | GREE Engineering
  • 1