タグ

dddに関するPuyostyのブックマーク (19)

  • 0063 号 巻頭言

    DDD を理解したいあなたのための DDD 入門以前 Rubyist Magazine 63 号をお届けする。 突然のお知らせで恐縮だが、日 Ruby の会の主たる事務所が東京から北海道に移転した。それもあってあまりまとまった時間がとれず、11 月のうちに書くはずだったのが気がつくと 12 月も半ばを過ぎていたので、今回は以前書きかけていた文章を発掘してお茶を濁したい。 Ruby とは直接関係がなくて恐縮だが、Ruby に限らずソフトウェア開発では現在でもちょくちょく話題になることがある、DDD についての話である。 ドメイン駆動設計こと DDD は 2020 年代のソフトウェア開発でもよく話題にされるが、率直に言うとストレートにポジティブな評価が行われているとは言い難い。 どちらかというと、ある種マニアックで、対象分野が制限されており、また初心者にはとっつきにくいところがある手法と思わ

    Puyosty
    Puyosty 2024/01/11
    解決したい問題と、その手法論としてのDDDが生まれてきた背景。なぜ初めからそうしていないかなど、当時の処理能力とソフトウェア開発手法を踏まえて理解が深まった。
  • ドメイン駆動設計とイミュータブルなクラス設計

    クラスをイミュータブルに設計するパターンの紹介 ・閉じた操作 ・withメソッド ・イベントリポジトリ&集約ファクトリ

    ドメイン駆動設計とイミュータブルなクラス設計
  • 実はDDDってしっくりこないんです - タオルケット体操

    DDD失敗パターン集 DDDという方法論それ自体に対する僕の立場はあんま好きじゃない寄りのフラット(といいつつほぼ忘れかけている)なんですが、過去何度もDDDでプロジェクトが爆死するのをみたり、爆破してしまったり……というのを見てきたので供養したいとおもいます。 メンバーの大半がDDDを知らない 「えっ!? ドメイン駆動を知らずにDDDを?」 「出来らぁっ!」 DDDを知らずにDDDをする、という前提がすでに禅問答じみてる気がしますが、たぶん一番よく見かける失敗パターンなんじゃあないでしょうか。 どういうことかというと、オニオンとかレイヤードとかクリーンなアーキテクチャのモジュールの命名ルールと構造を採用(採用できているとは言っていない)しただけの状態です。 私見ですが、アーキテクチャというのはメンバー全員がそれを理解できていない限り*1即破綻します。 理解できない人はどこに処理を書いてい

    実はDDDってしっくりこないんです - タオルケット体操
  • 🏗️ ドメイン駆動設計と依存性逆転の原則

    社内LTにて、ドメイン駆動設計と依存性逆転の原則を布教しましたʕ◔ϖ◔ʔ はてなブックマークのコメントもどうぞ! なお、ドメイン駆動設計を理解するためには、依存についても知る必要があります。 是非、依存関係と依存オブジェクト注入もご参照ください👍🏻

    🏗️ ドメイン駆動設計と依存性逆転の原則
  • クラス設計本格入門 JJUGナイトセミナー 2021-6-16

    イベントの動画 : https://www.youtube.com/watch?v=2Z1CJhPk-f8 オブジェクト指向プログラミングはクラス設計。 クラス設計はプログラムの分割。 クラス設計の焦点は、ビジネスルールを表現するクラスと、ビジネスアクションを表現するクラス。 クラス設計やパッケージ設計の実証済の形を覚えると、出発地点の設計が楽になる。 リファクタリングを積み重ねて設計を改善していく。

    クラス設計本格入門 JJUGナイトセミナー 2021-6-16
  • ドメイン駆動設計で保守性をあげたリニューアル事例 〜 ショッピングクーポンの設計紹介

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは! Yahoo!ショッピングクーポンチームの小倉です。 前回のフロントエンド技術刷新の話とは打って変わり、今回は2019年に行ったバックエンド技術刷新の話です。 刷新前のシステムはノンフレームワークPHPのモノリスでしたが、現在は主にJava/Spring Bootでマイクロサービス化しています。今回は、その中でもっとも仕様が複雑だったマイクロサービスにおいて、ドメイン駆動設計(Domain Driven Design:DDD)を実践した話をご紹介します。 ショッピングクーポンの自由度を知る みなさんは、ショッピングの商品が割引になるクーポンをご存じでしょうか? 実は、クーポンには、ヤフーが予算をだして発行する「モールク

    ドメイン駆動設計で保守性をあげたリニューアル事例 〜 ショッピングクーポンの設計紹介
  • アプリケーションをドメインモデルで設計する - Qiita

    親記事 : https://qiita.com/Regpon/items/1116679adadd8fb76f3f ドメインモデルで設計する狙い オブジェクト指向プログラミングにおいてかなり重要な内容となっているが如何せん概念的な内容となっている。ドメインモデルを設計するには幾度とない失敗の経験を重ねていき、常に改良していく精神が重要。そのための指針となる内容なので是非とも押さえておきたい。 それを踏まえてドメインモデルで設計する狙いは以下の通り。 業務的な判断・加工・計算のロジックを重複なく一元的に記述できる 業務の関心事(データ)とコードを直接対応させ、どこに何が書いてあるのかわかりやすく整理する 業務のルールの変更や追加の時に、変更の影響を狭い範囲に閉じ込める ドメインモデルの設計の難しさ ドメインモデルの設計は手続き型(スクリプト型)のプログラミングと比べて設計がむずかしいとされる

    アプリケーションをドメインモデルで設計する - Qiita
  • 「ドメイン駆動設計入門」を買って、読んだ - Magnolia Tech

    ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基 作者:成瀬 允宣出版社/メーカー: 翔泳社発売日: 2020/02/13メディア: Kindle版 先日開催されたObject Oriented Conferenceに象徴されるように、最近設計論の議論が盛んでですね。設計論と言えば、「エリック・エヴァンスのドメイン駆動設計」、いわゆるDDDがよく取り上げられてきましたけど、なかなかヘビーなだし、案外コードは全然出てこないので、読んだ上で「で、どうすればいいの?どんなコードを書けばいいの?」という疑問がわきます。 おなじくドメイン駆動設計の解説書である「実践ドメイン駆動設計」も、語られる順番がDDDと変えることで併せて読むことで理解を深めることを意図していましたが、やはりコードの少なさは同じくらいでした。 「ドメイン駆動設計入門」は、とにかく豊富なコード例が出てくると

    「ドメイン駆動設計入門」を買って、読んだ - Magnolia Tech
  • ドメイン駆動設計を導入するために転職して最初の3ヶ月でやったこと[DDD] - little hands' lab

    この記事は ドメイン駆動設計 Advent Calendarの記事です。 今年の9月にログラスというスタートアップに転職しました。 ログラスは元々DDDについて講師として勉強会をさせてもらっていた会社であり、DDD自体は社として取り組んでおりある程度進んでいました。ですが、講師ではなく中の人になったからこそできる色々な取り組みがあり、3ヶ月である程度形になりました。 記事では、DDDを広めるための取り組みについて、極力再現性がある形を意識しつつ、ご紹介したいと思います。 入社時の状況 なにをしたか テストの話が多い理由 実施内容詳細 TDD Boot Campの@t_wadaさんの基調講演観賞会を行った Serviceクラスを1パブリックメソッドにした レイヤーごとのオブジェクトの依存関係を整理 レイヤーごとのテスト方針 クラス名の重要性 参照実装を作成した 「責務」と「テスト」の重要性

    ドメイン駆動設計を導入するために転職して最初の3ヶ月でやったこと[DDD] - little hands' lab
  • ドメイン駆動設計による運行管理システムのアーキテクチャの最適化 - TIER IV Tech Blog

    こんにちは。ティアフォーでWebサービス開発を担当している池谷です。 世の中はコロナで自粛モードが続いていますが、ティアフォーではリモートワークを活用し日々の業務に柔軟に取り組んでいます。 さて、私の所属するWebチームでは、オープンソースの自動運転OS「Autoware」を利用した多種多様なサービスを開発しています。その中でも代表的なサービスに「FMS」という運行管理サービスがあります。今回は、当サービスを開発してきた振り返りとして、主にドメイン駆動設計によるアーキテクチャの最適化に纏わるトピックについてお話したいと思います。 What's FMS? ティアフォーのFMSの注目機能 オンデマンド配車モデル 巡回走行モデル ベストプラクティスを求めて FMS開発における試行錯誤 浮上していた課題 開発手法のアプローチ ドメイン駆動設計 モデリングの実践 設計・実装面のアプローチ クリーンア

    ドメイン駆動設計による運行管理システムのアーキテクチャの最適化 - TIER IV Tech Blog
  • 【DDD練習】「JR 新幹線 料金ルールを実装してみよう」にチャレンジ(その1) - shimapapa.io

    前置き 『現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法』の著者の増田さんが、 ワークショップで使用する「JR 新幹線 料金ルールを実装してみよう」というサンプルコードをGitHubで公開されておりました。 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法 作者:増田 亨出版社/メーカー: 技術評論社発売日: 2017/07/05メディア: Kindle版 明日 12/14 の「現場でDDD ! 2nd」のワークショップで使う、サンプルコードです。 新幹線の運賃と特急料金の計算ルールを、値オブジェクトで表現してみよう、という内容。 イベントに参加されない方も、ぜひ、チャレンジしてみてください。https://t.co/LlLKA5h7Bt #genbadeDDD— 増田 亨. (@masuda220) 2019年12月13日

    【DDD練習】「JR 新幹線 料金ルールを実装してみよう」にチャレンジ(その1) - shimapapa.io
  • ドメイン駆動設計の正しい歩き方

    ドメイン駆動設計でなぜ作るのか? ドメイン駆動設計の考え方 ドメイン駆動設計を実践するための6つの問い 事例研究 ドメイン駆動設計を現場に導入する 体験的に学ぶ エヴァンスをちゃんと読む

    ドメイン駆動設計の正しい歩き方
  • ドメイン駆動設計のドメイン駆動とはなにか - 日記マン

    ここ最近の仕事は、かなり硬直化した自社サービスをリファクタリングしている。 そのなかでアプローチのひとつとして、ドメイン駆動設計を勉強して、取り組んでいる。 エバンスDDDを手に取り、ネットで様々な知見を調べながらも、理解が定着してきている。 ここらでいちど、ドメイン駆動設計について、理解をアウトプットしておく。 ドメイン駆動設計は「ビジネスの複雑さ」に立ち向かう 「ドメイン駆動」の設計とは、ドメインに特化した型設計 ドメイン駆動設計の導入の決め手はドメインロジックが複雑かどうか レイヤードアーキテクチャは、ドメイン層を隔離する 自社サービスをグロースさせていくためにも、ドメインの洞察・抽出・再設計を繰り返す おすすめの書籍・資料 エバンスDDDや実践DDDは初学はとても苦しんだ。 入門するなら、これらのを手に取る前に、増田さんの素晴らしい資料たちがおすすめ。 増田さんのスライド,

    ドメイン駆動設計のドメイン駆動とはなにか - 日記マン
  • ドメイン駆動設計、どこまでやるべき? 開発現場の“問題”を乗り越えるためにできること

    ゲーム開発におけるドメイン駆動設計とサーバレスアーキテクチャ 佃松三郎氏(以下、佃):みなさん、こんにちは。最初に「TECH × GAME COLLEGE」についてお話しさせてもらいたいと思います。 私はテクロスCTOの佃と申します。 ゲーム会社が主催する勉強会というのは数多くありますが、ゲームに特化した、もしくは「ゲームっていろんな技術を使ってるよね」という話があるなかで、「当にゲームにフォーカスするオープンなコミュニティがないな」というところで、去年の8月からこの勉強会がスタートしました。 そこで「DDD」と呼ばれる開発手法について増田さんに登壇いただいたところからスタートしました。今回、ちょうど半年ということで、1つ区切りのイベントとして今回は開かせていただきました。 それでは、今日パネラーとして参加していただく増田さん、まずは簡単に自己紹介と最近取り組まれていることなどをお

    ドメイン駆動設計、どこまでやるべき? 開発現場の“問題”を乗り越えるためにできること
  • ドメイン駆動設計 本格入門

    ドメイン駆動設計の考え方、ドメイン駆動設計を理解する三つのキーワード、エヴァンスのススメ、レガシーに立ち向かう、マイクロサービスとドメイン駆動設計

    ドメイン駆動設計 本格入門
  • Microservices Patterns を読んで(1) - kencharosの日記

    Chris Richardson 氏の Microservices Patterns を読んだ。 Microservices Patterns: With examples in Java 作者: Chris Richardson出版社/メーカー: Manning Publications発売日: 2018/11/19メディア: ペーパーバックこの商品を含むブログを見る マイクロサービスという言葉が出て来て数年経ちます。 私もマイクロサービス的な複数のサービス間でデータのやり取りを頻繁にするようなシステムを構築したことがあります。 その際にデータの整合性は最重要ではなかったのでトランザクション的なものは使いませんでしが、 お金を扱うようなシステムをマイクロサービスにした場合ちゃんとしたトランザクションはどうするのかは気になっていました。 書にはその疑問に対する現実的な回答が載っています。

    Microservices Patterns を読んで(1) - kencharosの日記
  • ドメインモデリングの始め方 - Speaker Deck

    ドメイン駆動設計の考え方は書籍を読むとわかりますが、いざモデリングを実践しようとすると、どこから手を付けていいかわからない、ドメインモデリングの始め方がよくわからないという意見を聞きます。 このスライド資料では、そんな悩みを持つ皆さんに向けて「ドメインモデルを見つけ出し・実装に落とし・改善していく」方法を、できるだけわかりやすく解説します。

    ドメインモデリングの始め方 - Speaker Deck
  • [レポート]レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡 #DDDAlliance | Developers.IO

    こんにちは。プロダクトグループのshoito(しょいと)です。 9/26(水)に開催された レガシーコードにドメイン駆動設計で立ち向かった5年間の軌跡 に参加してきたのでレポートします。 当日のtwitterのハッシュタグ#DDDAllianceのツイートがTogetterでまとめられています。 BIGLOBEにおける、5年間のDDDへの取り組みと今後について ビッグローブ株式会社 西 秀和さんより 30年間、事業を支えてきた業務システムをDDDで刷新する。 そのためには、組織的、エンジニアのレベルなど多くの問題があります。 その壁をどう乗り越えたのか? そして、壁の向こうで得た恩恵とは何のか? 5年という期間を経て、得ることのできた気づきや組織的な変化をお伝えしたいです。 アジェンダ DDD導入に至るまで 導入時の苦労 導入による効果 今後の目標 BIGLOBE販売システムについて、DD

    [レポート]レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡 #DDDAlliance | Developers.IO
  • ドメインモデルをコードへ落とす 〜あなたのクラスは、どこから?〜 - Qiita

    annotation: 現在コメントいただいている通り、一部誤りを含んでいる様です。 追って確認・修正いたしますが、現行ではコメントも合わせてお読み頂ければと思います。 こんにちは、風邪はだいたい喉から来るぷーたんです。 「DDDの構成要素はこれだー」というのはたくさんあったのですが、 「このドメインオブジェクトはどの要素だー」と逆引きするものがなかったので調べてフローチャートにしてみました。 例えばドメインモデル図とコードがうまく合致しない時の見直しなどに使えるのではと考えています。 ではご覧ください♪ 検討フローチャート 図1.フローチャート 1) 複数のドメインオブジェクトを扱い、整合性を担保するか まず複数のドメインオブジェクトを扱うかを考えます。 ドメインモデル図では集約線が引かれていたり、複数の関係線が引かれていたりします。 図2.ドメインモデル図の例 上記のような場合であれば

    ドメインモデルをコードへ落とす 〜あなたのクラスは、どこから?〜 - Qiita
    Puyosty
    Puyosty 2018/06/23
  • 1