並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 686件

新着順 人気順

DDDの検索結果241 - 280 件 / 686件

  • DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか - little hands' lab

    Object-Oriented Conference 2020で登壇させていただきました。 その際の発表資料です。 発表資料 DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか from Koichiro Matsuoka www.slideshare.net 本章の内容は技術書典8(2020/3/1)で頒布予定の「ドメイン駆動設計 モデリング/実装ガイド」の1,2章の内容になります。 全部で11章仕立てです、興味お持ちいただけたらお買い求めください。 受け取りは技術書典以降になりますが、それでもよろしければboothで予約可能です。 little-hands.booth.pm また、実践にあたって頻出の疑問に対してトピックごとに詳しく解説した書籍もあります。 重要トピック「モデリング」「集約」「テスト」について詳細に解説し、その他のトピックでは頻出の質問への回答と具

      DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか - little hands' lab
    • ドメイン駆動設計による運行管理システムのアーキテクチャの最適化 - TIER IV Tech Blog

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

        ドメイン駆動設計による運行管理システムのアーキテクチャの最適化 - TIER IV Tech Blog
      • 『モデリングの学び方:座談会』を見たよメモ - コード日進月歩

        モデリングの学び方:座談会 - connpassを見たよメモです。ディスカッション形式だったので、話の流れになぞらえてまとめていきます。 本日の話し手 この会でメインで喋られていたのは以下の方々 増田さん かとじゅんさん ミノ駆動さん hirodragonさん 藤岡さん 原田さん 高崎さん 本日の趣旨説明と増田さんの考えるモデリングに関して まずは下記の資料を使いながら今日の催しの趣旨説明と増田さんの考えるモデリングに関しての話があった。 speakerdeck.com 上記の資料にもあるが以下の話が冒頭で行われた 今回の話し手の属性に関しての話(共通的な部分もありつつも自社サービスを持つ人たち3人と、受託開発を主に行う人たち3人という構成) まずは前提の話としての増田さんのモデリングの考え方のダイジェスト説明 効果的なモデリングの考え方(要点をうまく表現する名前を見つける、認知不可の軽減

          『モデリングの学び方:座談会』を見たよメモ - コード日進月歩
        • わかった気になるDDD入門記事まとめ - Qiita

          はじめに こんにちは。はじめまして。tarokamikazeです。 これは、社内勉強会用に参考資料をまとめたものです。 この資料のゴール DDD専門用語について、どんなワードでググったらいいかわかるようになる DDDを知らない人が、戦術的DDD(軽量DDD)だけでもやってみようかなという気になる 前段; MVCの限界 余談ですが、凝集度・結合度の観点からするとRailsのMVCがどう問題があるかをコラムで紹介しています。MVCそれぞれの責務を図示すると、低凝集・高結合になっていることがわかります。 とにかく、凝集度、凝集度なのです。 pic.twitter.com/fDWv1ERJA1 — 松岡@技術書典8Day2え28 / DDDブログ書いてます (@little_hand_s) February 2, 2020 あえて過激に言うと。 ある程度の複雑度を持ったアプリケーションにおいて、M

            わかった気になるDDD入門記事まとめ - Qiita
          • DynamoDBによるOutboxパターンとCDCを用いたCQRSアーキテクチャの実装〜ZOZOMOでの取り組み - ZOZO TECH BLOG

            こんにちは。ブランドソリューション開発部プロダクト開発ブロックの岡元です。普段はFulfillment by ZOZOとZOZOMOのブランド実店舗の在庫確認・在庫取り置きサービスの開発、保守をしています。 本記事では、ブランド実店舗の在庫確認・在庫取り置きサービスで実装したCQRSアーキテクチャについて紹介させていただきます。 CQRSの実装においては、データベース(以下、DB)分割まで行い、コマンド側DBにはAmazon DynamoDB(以下、DynamoDB)、クエリ側DBにはAmazon Aurora MySQL(以下、Aurora MySQL)を用いています。また、コマンド側DBとクエリ側DBの橋渡しを担うメッセージングにおいてはOutboxパターンと変更データキャプチャを用いました。DBとメッセージングシステムへの二重書き込みを避けることで障害などのタイミングで顕在化する潜在

              DynamoDBによるOutboxパターンとCDCを用いたCQRSアーキテクチャの実装〜ZOZOMOでの取り組み - ZOZO TECH BLOG
            • 「DDDで複数集約間の整合性を確保する方法 Rev2」に対する考察 - かとじゅんの技術日誌

              どうも、かとじゅんです。 松岡さん(id:little_hands)が以下の記事を更新されたそうです。松岡さん自身が悩まれた中で検討したオプションであって、唯一の正解ではないと踏まえたうえで、率直な感想を述べたいと思います。結論からいうと、論旨は前回の記事と変わりませんが、コード例で具体的な考え方を示している点を工夫しています。 little-hands.hatenablog.com 前回の考察記事も古くなったので、最新の記事に併せて考察をまとめ直したいと思います。 blog.j5ik2o.me ドメインモデル ドメインモデル図が追加されていますね。以下の3つの集約があるそうです。「一つの集約にまとめればいいよね」という提案はなしという前提で考えます。 ユーザー タスク アクティビティ・レポート 「アクティビティ・レポート」は「タスク」もしくは「ユーザー」に関連を持つようです。 「これらの

                「DDDで複数集約間の整合性を確保する方法 Rev2」に対する考察 - かとじゅんの技術日誌
              • 経験者がいない状態で、戦略的DDDを現場でやってみた話/ OOC2020

                OOC2020での登壇用資料です。 プロポーザルは以下リンクから。 https://fortee.jp/object-oriented-conference-2020/proposal/68aed814-c5b4-4662-bcc3-40345ad09612

                  経験者がいない状態で、戦略的DDDを現場でやってみた話/ OOC2020
                • 増田亨さんによる「設計の考え方とやり方」勉強会 書き起こし4 「開発のやり方と設計スキルと補足資料」 - asken テックブログ

                  増田亨さんによる「設計の考え方とやり方」勉強会 書き起こし4ページ目です。最初からお読み頂く場合は、こちらから御覧ください。 資料 増田さんの講演資料 質疑応答モデル なぜこの場を作ったのか 書き起こしリンク パート1「良い設計を目指す」 パート2「設計スタイルの選択とクラス設計のスタイル」 パート3「テーブル設計のスタイル」 パート4「開発のやり方と設計スキルと補足資料」(本記事) パート5「質疑応答」 目次 開発のやり方 開発のやり方の分かれ道 組み立て思考の開発のやり方 変化しやすい構造を作る とっとと作る 設計スキルを身につける 設計スキル 設計スキルアップの行動計画 まとめ 補足資料 開発のやり方 開発のやり方の分かれ道 簡単に言うと、目的の固定から出発する分解思考の開発のやり方がかつての潮流でした。タスク分解して、工程分解して分業体制にして、その結果実際に作っている人間の後半の

                    増田亨さんによる「設計の考え方とやり方」勉強会 書き起こし4 「開発のやり方と設計スキルと補足資料」 - asken テックブログ
                  • PHP中級者がソフトウェア開発の理解を深めるためのオススメ書籍 約30冊(2020年版) — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

                    去年末(2019/12)にオススメ書籍をまとめてみたことがあったので、それを少し更新して公開します。 上にある書籍がよりオススメというわけではないです。 対象者は「PHP中級者」です。中級者が何かは難しいですが、初心者、初級者では決してないとは言えます。 改めて一覧にしてみると、かなり偏っているかも知れません(笑 こういうのはコンテキストというのがあるため、それが合わないと「お前は何を薦めているのだ?」となるでしょうね。 キーワードは、「モデリング」「オブジェクト指向プログラミング」「TDD」「デザインパターン」「DDD」「チーム開発」「アジャイルソフトウェア開発」「スクラム」でしょうか。 PHP中級者のイメージ たぶん、PHP中級者であれば、PHPに関することはPHPマニュアルなどを調べて解決できるでしょう。PHPのオープンソースプロジェクトに貢献しており、自分でプロジェクトを持っている

                    • データモデリングとドメイン駆動設計

                      渡辺幸三氏のデータモデル大全を読みました。 業務システムを扱うエンジニアであれば必読と言える書なのでぜひ読んでみてください。 ドメイン駆動設計に関する課題感 さて、これを読みながらここ数年ドメイン駆動設計に感じていた課題を言語化してみました。 それは、「ドメイン駆動設計で語られるモデリングの領域がプログラミングに関するものに限定されすぎている」という点です。 これは「データの入出力[1]はドメインの主要な関心事ではない」というような主張にみられます。 確かにデータの入出力に関心を払わなければプログラミングに関心事を集中できます。 しかし、それはデータモデル大全の中で指摘しているようなプロセス中心のあり方という指摘そのものだと感じました。 コアドメインに集中する エリック・エヴァンスのドメイン駆動設計の中では「コアドメイン」に集中することの重要さを説いています。 確かに、事業にとって事業価値

                        データモデリングとドメイン駆動設計
                      • Blitz.jsをRuby on Railsエンジニアが触ってみた感想

                        感想です。 何をしたか 現状でBlitz.jsで本番サービスを運用できるかの調査。 Railsで運用している本番サービスの一部機能を、3日間ほどかけて移行を試してみた。 結論 (Railsの主戦場でもある)新規事業開発の文脈でのクイックな立ち上げを想定するなら、本番運用するにはまだ厳しい。 特に、RailsユーザーとしてはActiveRecordがないのが厳しい。 開発効率そのものはRailsと比べて多少落としても、Railsよりもスケーラブルで型安全に開発したいなら、割と良い選択肢に思う。 もろもろ可能性は感じるので、引き続き応援していきたい。 良かった点(=Blitz.jsに興味を持っている理由) 型安全な開発 サーバーもフロントも全てが型に守られた開発、そしてIDEの恩恵を受けられるのは、いうまでもなく心地がいい。 型は補助輪のようなものなので、ユーザースキルが高ければ必須ではないく

                          Blitz.jsをRuby on Railsエンジニアが触ってみた感想
                        • ソフトウェアエンジニアが執行役員CTOになった理由

                          PR TIMES、新たに執行役員CTOと事業部長2名が参画。Tayori事業部化、新卒2年目抜擢、顧問招聘で体制強化 プレスリリース配信サービス「PR TIMES」等を運営する株式会社PR TIMES(本社:東京都港区、代表取締役:山口 拓己、東証一部:3922)は、2021年4月13日付で下記のとおり組織変更および人事異動を行います。 PR… 今までソフトウェアエンジニアとして働いてきて、マネージャー経験もない人間が突然「執行役員CTO」という役職についたので、色んな人に驚かれ、今でも色んな人に理由を聞かれます。そういえば個人のブログなどで何も発信してこなかったので、理由を公開しておきます。 実は社内向けにCTO通信というのを書いているのですが、そちらの内容の抜粋です。社内ではもう少し赤裸々なエントリーになっているので、読みたい方は入社してください。 それとこちらのエントリーは主に私とこ

                          • TypeScriptにおけるDDDのドメインオブジェクトの課題と対策

                            こんにちは、近藤です。 commmune Advent Calendar 2023 18日目の記事は『TypeScriptにおけるDDDのドメインオブジェクトの課題と対策』です はじめに ドメイン駆動設計(DDD)は、複雑なビジネスロジックを扱うアプリケーション開発において、重要かつ効果的なアプローチとして広く認識されています。 コミューンでは、現場で役立つシステム設計の原則の著者、増田さんのご協力を得て、プロダクト開発を進めています。 幸運なことに私は増田さんとの密なコミュニケーションを取らせて頂いており、DDDの理論と実践方法に関する貴重な知見を深めその有用性を感じております。 しかし、TypeScriptのような構造的型付けを採用する言語でDDDを適用する際には、特有の課題が生じることがあります。本記事では、TypeScriptでの構造的型付けに伴う課題、そしてそれらを克服する方法に

                              TypeScriptにおけるDDDのドメインオブジェクトの課題と対策
                            • トランザクションスクリプトはどこから来たのか トランザクションスクリプトは何者か トランザクションスクリプトはどこへ行くのか #sekkeinight

                              トランザクションスクリプトはどこから来たのか トランザクションスクリプトは何者か トランザクションスクリプトはどこへ行くのか #sekkeinight

                                トランザクションスクリプトはどこから来たのか トランザクションスクリプトは何者か トランザクションスクリプトはどこへ行くのか #sekkeinight
                              • 再考 - ドメインサービス  - まっちゅーのチラ裏

                                自分が大規模システムで組むアーキテクチャは基本的にはCleanArchitectureを踏襲しているが、その中の構成要素であるドメインサービスだけは少し独自(?)の解釈をしていて、書籍などでよく見る ビジネスロジックを持つが、状態をもたない 複数の集約にまたがる処理を書く場所 という責務の他に、外部システムへの委譲処理だったり、共通UseCaseのような責務も持たせている。 これは、自分が「xxService」という命名にトラウマがあり(何でも置き場になりがち)、単なるServiceだとコントローラやらプレゼンターやら、どこから呼ばれても違和感がない様に見えてしまうから、とりあえずDomeinServiceへ寄せている経緯がある。 ※ここで語るのは、あくまで大規模想定で、小さいシステムならこんな事を意識する必要はないはず。 ※あくまで自分の考えで、一般的ではない可能性があることをご了承くだ

                                  再考 - ドメインサービス  - まっちゅーのチラ裏
                                • フロントエンド立ち上げで起きたアーキテクチャ設計の失敗 学び生まれたのは間違いを認めて負債を返済する文化

                                  「振り返ってみると失敗だった!」ということを、アーリーステージスタートアップの最前線で活躍しているエンジニアの方々が赤裸々LT形式で語る「スタートアップ開発しくじり先生LT」。ここでファンファーレ株式会社の中山氏が登壇。フロントエンドの立ち上げで起きたしくじりについて語ります。 自己紹介と会社紹介 中山太雅氏(以下、中山):「フロントエンドをゼロから作り上げしくじってきた青春の思い出」ということで、話します。ファンファーレの中山と言います。よろしくお願いします。 時間がないので早口になってしまうと思いますが、ちょっとお許しください。発表内容ですが、大小いろいろ織り込もうと思いましたが時間の関係上、大にフォーカスしてお送りしようと思ってます。すみませんがご了承ください。 こんな感じで話そうと思っています。自己紹介と会社紹介をした上で、何をしくじったのかを最初に伝えて、そのバックグランドという

                                    フロントエンド立ち上げで起きたアーキテクチャ設計の失敗 学び生まれたのは間違いを認めて負債を返済する文化
                                  • DDDにおける認証の実装場所

                                    こんにちは。株式会社プラハCEOの松原です。 DDDに基づいて開発しているアプリケーションの「認証」ってどこで実装するのが良いのだろう? 対象読者 何となくDDDに関する本を読んで理解した気がする 試しにDDDに基づいてアプリケーションを実装し始めた 認証の実装をどこに書くべきかわからず詰まった 結論(オニオンアーキテクチャの場合) 実装はUI層かInfrastructure層 自分ならInfrastructure層 認証後のインターフェースはアプリケーション層 コンテキストは1つにまとめている前提(認証コンテキストを作らない場合の置き場所) UI層って何やねん DDDとの相性の良さからよく併用されるオニオンアーキテクチャの図を見ると、以下3つの層が一番外側に位置しています: UI(User Interface) Infrastructure Tests (図はこちらから引用) UIと言え

                                      DDDにおける認証の実装場所
                                    • DDDを試行錯誤しながら実践するチームの学びをまとめてみた - Gaudiy Tech Blog

                                      こんにちは!エンタメ領域のDXを進めるブロックチェーンスタートアップ、Gaudiyでバックエンドエンジニアをしている椿(@mikr29028944)です。 Gaudiyは、まだエンジニア10名、デザイナー2名ほどの開発チームですが、今年の6月からDDDと呼ばれるドメイン駆動設計を開発に取り入れました。 DDDとは、一言で言うとドメインエキスパートと呼ばれる担当業務やシステム設計に最も詳しい人と、エンジニアが共創してソフトウェアを開発する手法です。 今回は、DDDを実践する中での気づきや学び、躓きやすいポイントをどのように乗り越えてきたかについて、ご紹介してみたいと思います。 DDDを検討しているチームや、導入して間もないチームのご参考になれば幸いです! 1.なぜDDDを導入したのか 2.GaudiyではどのようにDDDを取り入れているか 3.DDDの実践で生じた課題と乗り越え方 3-1.チ

                                        DDDを試行錯誤しながら実践するチームの学びをまとめてみた - Gaudiy Tech Blog
                                      • 「価値」から小さく始めるドメイン駆動設計 - KAKEHASHI Tech Blog

                                        こちらの記事は カケハシ Advent Calendar 2023 の 16日目の記事になります。 概要 こんにちは。AI在庫管理の開発チームでSWEをしている小室です。 私は普段ドメイン駆動設計(以下、DDD)を意識しながら開発することが多く、実践を重ねるほどDDDの素晴らしさを実感しております。 最近異動してきたAI在庫管理の開発チームでは、現状はあまりDDDを意識して開発を進めていないのですが、プロダクトが対象としている世界が非常に複雑であることと、今まさに多くの法人様に利用していただけるようになったうれしい悲鳴として成長痛を感じ始めており、ドメイン駆動設計を何かのヒントとしてプロダクトによる価値提供速度を加速できればと考えています。 しかしながら、ドメイン駆動設計は独自の価値観や学習コストの高さから、まだ取り組んだことのないメンバーとしては大きな不安を感じる部分があると思います。

                                          「価値」から小さく始めるドメイン駆動設計 - KAKEHASHI Tech Blog
                                        • 「ドメイン駆動設計入門」を買って、読んだ - Magnolia Tech

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

                                            「ドメイン駆動設計入門」を買って、読んだ - Magnolia Tech
                                          • ドメイン駆動設計入門【DDDをわかりやすく解説】 | 楽水

                                            突然ですが、エンジニアの皆さま、Javaで開発したWebアプリケーションの構成、このようになっていませんか? データとgetter/setterだけのオブジェクト(JavaBean) 画面のコントロールやビジネスロジックの処理はServletが行う データベースのアクセスは、DAO(Data Access Object)に任せる もしそうであれば、そのシステム、ドメインモデル貧血症に陥ってます。 これは、データとgetter/setterだけのオブジェクトを、Anemic(貧血症になって元気がない)オブジェクトと称し、オブジェクトとはいうものの実質的にはデータであり、それをやりとりするだけの手続き型システムなっていることを嘆いたものです。 今回は、本来のオブジェクト指向に立ち返り、そのメリットである高い保守性、再利用性、拡張性を備えた変化に強いシステムを作るための設計方法、ドメイン駆動設計

                                            • Domain Event

                                              目次 概要 この記事の内容 対象読者 注意事項 前提知識 定義 用途 モデリング 不変性 独立性 汎用情報 個別の情報 Versioning 実装 前提 フレームワーク Domain Eventの処理 型定義 interface DomainEventEnvelope Enum Domain Eventの内部通知 staticなEvent Publisherを用意してAggregateがPublisherを呼び出す 実装例 AggregateのCommandの返り値としてDomain Eventを返す 実装例 Aggregateで保持してGetterで取り出す 実装例 永続化と外部通知 要件 永続化 外部通知 まとめ 参考文献 概要 この記事の内容 Domain Eventは非常にシンプルな概念かつ強力なモデリングパターンです。 モデリングにおいては直感的に扱うことが可能ですが、実装をする

                                                Domain Event
                                              • 設計に「こだわる」とは / Sekkei-ni-kodawaru

                                                BPStudy#151〜オブジェクト指向、モデリング、設計 LT大会[リモート開催] https://bpstudy.connpass.com/event/170610/ にてお話した際のプレゼン資料です。 株式会社アクティアは、「モデル駆動開発でソフトウェア開発を効率化しよう!」 をキーワードにモデリングを活用したソフトウェア開発を実現させようという企業です。 そんなモデリングを活用することに主眼を置いている中で、アクティアでは設計に「こだわる」という文化が生まれています。 あらためて、設計に「こだわる」ということを考えた時に、経験値と感覚でやっている所が多い状況でした。この発表を機会に、自分自身がやっていることを言語化してみようと思います。 #設計こだわる #モデル駆動型開発 #ドメイン駆動設計 #DDD #ユビキタス言語 #RDRA #モデリング #匠Method #BPStudy

                                                  設計に「こだわる」とは / Sekkei-ni-kodawaru
                                                • オニオンアーキテクチャの威力:1ヶ月で実現したクエリエンジン移行舞台裏

                                                  ログラスの龍島(@hryushm)です。最近は秋に備えて干し芋を作る練習をする日々を過ごしています。 ログラスではオニオンアーキテクチャを採用してしてDDDを実践しています。直近プロダクトのスケールによってデータのレポーティング、集計処理のパフォーマンス劣化の問題が顕在化、早急な対応を迫られる事態となっていました。その対応としてRDBMS(PostgreSQL)からDWH(BigQuery)へ一部のクエリを移行しました。オニオンアーキテクチャの恩恵で移行が比較的容易であり、実装自体は1ヶ月というスピードで終えることで顧客に素早く価値提供できたため、実例として記事にしたいと思います。 オニオンアーキテクチャと利点 オニオンアーキテクチャ自体の説明は多数の記事があるため省きますが、弊社松岡の記事が理解しやすいと思います。 記事中にあるレイヤードアーキテクチャと比較した時に肝となる、依存性逆転の

                                                    オニオンアーキテクチャの威力:1ヶ月で実現したクエリエンジン移行舞台裏
                                                  • 2022年版実践WPF業務アプリケーションのアーキテクチャ【設計編/後編】 ~ドメイン駆動設計&Clean Architectureとともに

                                                    今回はいよいよ最終回となります。前回は非機能要件についてアーキテクチャを設計してきました。今回は代表的なユースケースを選定して、アーキテクチャの詳細な設計を蒸留していきます。また、開発者ビューについても設計を行います。利用者側の要件から出てきにくい、開発上に必要となる設計、テスト設計などを実施します。 ソースコード 実際に動作するソースコードは、GitHub上に公開しているので、ぜひご覧ください。ビルドや実行方法については、リンク先のREADME.mdをご覧ください。また、実際に動作させるためには次の2つのライセンスが必要です。 ComponentOne for WPF SPREAD for WPF 4.0J これらは試用ライセンスを発行することができます。 本稿だけで読み進められるように記載していますが、すべてのコードを詳細に解説しているわけではありません。本稿を読んだ後、あらためて動作

                                                      2022年版実践WPF業務アプリケーションのアーキテクチャ【設計編/後編】 ~ドメイン駆動設計&Clean Architectureとともに
                                                    • Java 17の新機能でドメインモデリングの表現力を高めてみる - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」

                                                      基盤本部(開発部門)の木下です。Java 17 の新機能を使って、ドメイン駆動設計(Domain Driven Design: DDD)のモデリングの表現力を高める例をご紹介します。 皆さんは「事前条件が OK ならデータベースを更新する」というロジックを、クリーンアーキテクチャのどのレイヤーに実装していますか? 事前条件はドメイン知識なのでドメインサービスに実装したいところですが、リポジトリーを操作するアプリケーションサービスの中に書かれることも多いのではないでしょうか。 クリーンアーキテクチャー。https://style.biglobe.co.jp/entry/2020/02/13/150709 より引用 この記事では、ドメインサービスとアプリケーションサービスをきれいに分離するために、Java 17 で正式導入された interface の sealed と permits を活用

                                                        Java 17の新機能でドメインモデリングの表現力を高めてみる - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」
                                                      • 設計ナイト2022 トランザクションスクリプト

                                                        try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report

                                                          設計ナイト2022 トランザクションスクリプト
                                                        • Unityを利用した大規模なゲーム開発にクリーンアーキテクチャを採用した話 - WonderPlanet Developers’ Blog

                                                          こんにちは、タノシムスタジオテックリードの吉谷です。タノシムスタジオでは2011年ごろからクライアントアプリケーションの開発にUnityを利用し始め、いろいろ試行錯誤をつづけた結果、現在ではクリーンアーキテクチャの考え方を取り入れています。 今回は、Unityを利用したゲーム開発にクリーンアーキテクチャを適用した例として、導入理由、具体的な構成、実際に感じたメリット、デメリットなどを紹介したいと思います。 クリーンアーキテクチャとは クリーンアーキテクチャはRobert C. Martin氏が自身のブログにて発表した、すべてのソフトウェアアーキテクチャが守るべき考え方やアプローチがまとめられた概念です。以下のような同心円状の図で説明されることが多いかと思います。 出典: The Clean Architecture クリーンアーキテクチャの説明自体は、検索していただければ優れた記事や書籍な

                                                            Unityを利用した大規模なゲーム開発にクリーンアーキテクチャを採用した話 - WonderPlanet Developers’ Blog
                                                          • IBM Dojo 挫折しないドメイン駆動設計 20210825pm

                                                            良いアプリケーションをデザインするための感覚の持ち方 / Cultivating a Sense for Designing Great Applications

                                                              IBM Dojo 挫折しないドメイン駆動設計 20210825pm
                                                            • プロダクトマネージャー目線で語る、0→1開発でDDDを取り入れた背景とその効果 - クラウドワークス エンジニアブログ

                                                              こんにちは! クラウドワークスの新規事業開発チームでプロダクトマネージャー(以下、PdM)を担当している八尾です。 クラウドワークスでは、新規SaaSプロダクトを目下開発中です。 プロダクトの中身はまだ詳しく言えないのですが、新規事業の考え方などはこちらの記事をぜひご覧ください。 現在開発中のプロダクトでは初期からドメイン駆動設計(以下、DDD)の思想を取り入れて設計をしています。 DDDは、端的にいうと、ドメインモデルを中核に据えて設計しようということだと理解しています。 (参照:Webアプリケーションフレームワーク導入時に考慮すべき22の観点 - Qiita) この記事では、なぜ初期の小さな規模のプロダクトでDDDを取り入れる意思決定をしたか、取り入れてみてどういう効果が得られたかについて、非開発者のPdM視点で書いてみようと思います。 (開発者視点でどうだったかは後々また公開する予定

                                                                プロダクトマネージャー目線で語る、0→1開発でDDDを取り入れた背景とその効果 - クラウドワークス エンジニアブログ
                                                              • これまでに存在しない業務フローは どう作っていくか?ドメインエキスパートやビジネスサイド、 チーム一丸となって取り組むドメインモデリング

                                                                【Assured×カケハシ】DXを牽引する先進プロダクト開発に携わるエンジニア達が語るドメインモデリング https://techplay.jp/event/952464

                                                                  これまでに存在しない業務フローは どう作っていくか?ドメインエキスパートやビジネスサイド、 チーム一丸となって取り組むドメインモデリング
                                                                • 巨大レガシーシステムの戦略評価とリファクタリングにおけるDDDの活用事例

                                                                  こちらのイベントで発表した資料です。 『ドメイン駆動設計を導入するためにやったこと』 https://modeling-how-to-learn.connpass.com/event/229811/

                                                                    巨大レガシーシステムの戦略評価とリファクタリングにおけるDDDの活用事例
                                                                  • solid+cqs+dry

                                                                    CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?

                                                                      solid+cqs+dry
                                                                    • #fukabori をきいて Value Object と Value Object パターンについて頭の中を整理 - Mitsuyuki.Shiiba

                                                                      連休の余韻も楽しんだので今日から散歩を再開した。ちょっと前までは「陽の光を浴びなきゃ!」と思って3時過ぎにウロウロしてたけど、これからはもうちょっと涼しい時間帯がいいなと思って、夕暮れ時に散歩しながら fukabori.fm を聴いてた。Value Object のお話。面白いなぁ 73. Value Object w/ kumagi | fukabori.fm kumagi さんの記事はこちら Value Objectについて整理しよう - Software Transactional Memo お絵描き PoEAA や DDD はだいぶ前に読んだことがあるけど、Value Object を雰囲気で捉えてるからちゃんと見直しておこうと思って、調べたりしながら絵を描いた。こういうことなのかな? (絵をかくほどでもなかった・・・ Value Object とは? kumagi さんも書いてる

                                                                        #fukabori をきいて Value Object と Value Object パターンについて頭の中を整理 - Mitsuyuki.Shiiba
                                                                      • モデリングの仕方がUserクラスの負債化をまねく 分割設計で爆死しないための2つの考え方

                                                                        「“開発者体験”で世界をエンパワメントする1日。」と題し、チームや組織の課題に日々取り組む方々に向けて開催された「Developer eXperience Day CTO/VPoE Conference 2021」。ここで、READYFOR株式会社の仙塲氏が「『Userクラス』で考える技術的負債解消の観点」をテーマに登壇。次にUserクラスの問題と、その解決方法を紹介します。前回の記事はこちらから。 Userクラスが抱える問題 ここでやっとUserクラスが抱える問題。Userクラスを今のモデリング観点と照らし合わせてみると、個人顧客と法人顧客の関心事の異なる問題を、たった1つのUserクラスで取り扱ってしまっています。つまり、複数の問題解決のために、Userクラスが流用されている構造です。特定の問題解決を意図した構造になっていないんです。 このユーザーというのは、個人でも法人でもどうとでも

                                                                          モデリングの仕方がUserクラスの負債化をまねく 分割設計で爆死しないための2つの考え方
                                                                        • 集約の実装について考えてみた

                                                                          はじめに DDD の集約の実装について考えたことをまとめます。 題材 料理のレシピ作成を題材としてまとめていきたいと思います。 概要 概要は以下の通りです。 レシピには材料と作り方がある。 材料には食材や調味料などの名前と分量が必要である。 材料はメインとなる材料や合わせダレなどのカテゴリごとにグルーピングできるとよい。 作り方は具体的な手順を示すものである。 ドメインモデル 上記をドメインモデルで表現するとこのようなイメージです。 各種値の範囲はドメインとして決まっているわけではないですが、システム化する上で決めなければならないことだと思いますので、ドメインエキスパートとすり合わせながら運用に支障をきたさない範囲で決定すると良いのかなと思います。 今回は決定した値の範囲をドメインモデルに補足する形で記載しています。 ユースケース システムに対するユースケースは以下の通りとし、末端のユース

                                                                            集約の実装について考えてみた
                                                                          • ドメイン駆動設計で貧乏を爆殺する - Qiita

                                                                            本記事は ドメイン駆動設計#1 Advent Calendar 2019 19日目の記事です。 こんにちは、レガシーコードを 爆殺 リファクタリングするのが大好きなミノ駆動です。 今回はドメイン駆動設計導入上避けては通れない、大事な大事なお金の話を致します。 「ドメイン駆動設計を導入してみたいんです!」 部下「ドメイン駆動設計を導入してみたいんです!」 上司「それって何?なんのために導入するの?」 部下「…………」 はい、僕にもそんな時代がありました。 何のためにドメイン駆動設計を導入したいのか、簡潔に説明できますでしょうか。 「ドメイン駆動設計」のタイトルにあるように、本書は設計に関する書籍です。 ソフトウェア全体の設計手法や思想に関して言及している書籍です。 まずはソフトウェアの価値とは何か、設計とは何か、それぞれ何かを整理してみます。 ソフトウェアの価値 ソフトウェアが満たすべき要件

                                                                              ドメイン駆動設計で貧乏を爆殺する - Qiita
                                                                            • アクターモデルとアプリケーションアーキテクチャの関係 - nkty blog

                                                                              背景 マイクロサービスアーキテクチャが浸透し、それに伴いDDDを導入する企業も増えている気がします。 それと同時に、アクターモデルの話題も最近以前より聞くようになった気がします。 ただ、以下のような疑問を持つ人は多くいるのではないでしょうか? アクターモデルは聞いたことがあるけど、重要性が分からない 使い所が分からない サーバーレスコンピューティングなの?でもAkkaの説明ばかり出てくるけど? こういう状況になっている要因の一つは、おそらく、アクターモデルの説明の多くが分散システムにフォーカスしており(当たり前なんですが)、アプリケーションアーキテクチャとの関係性については、使う人まかせになっているためではないでしょうか。 ここでは、アプリケーションアーキテクチャと合わせて、アクターモデルの使い所を考えてみます。 先に結論 アクターモデルは、分散環境で実行するアプリケーションを開発するため

                                                                                アクターモデルとアプリケーションアーキテクチャの関係 - nkty blog
                                                                              • 「クラスごとの役割を明確化すること」がポイント アプリケーション設計におけるドメインロジックの分離法

                                                                                今回はアプリケーションアーキテクチャを学ぶ最初の一歩として、「MVC」や「3 層アーキテクチャ」などの基本的な用語の意味や関係性を整理する「改めて整理するアプリケーション設計の基本」。ここで大嶋氏が登壇。続いて、Controllerにプレゼンテーション層からデータアクセス層の処理をすべて記載している場合の分離方法について紹介します。前回はこちらから。 質疑応答 ドメインモデルパターンはドメイン騒動設計と同義か? 大嶋勇樹氏:ということで、ここまでビジネスロジックの実装について話してきました。ここからは最後のステップとして、「Controllerに全部書く」からどうやってステップアップするかを話していこうと思います。 ここまでで質問があれば、ぜひQ&Aにもらえれば回答します。せっかくなので、このタイミングで「ドメインモデルパターンはドメイン駆動設計と同義ですか?」(という質問)に回答しておこ

                                                                                  「クラスごとの役割を明確化すること」がポイント アプリケーション設計におけるドメインロジックの分離法
                                                                                • 『関数型ドメインモデリング』はF#の本なのか? - 詩と創作・思索のひろば

                                                                                  関数型ドメインモデリング ドメイン駆動設計とF#でソフトウェアの複雑さに立ち向かおう 日本語版出版に際し、訳者の猪股さんにご恵贈いただきました。ありがとうございます! すでに原著の『Domain Modeling Made Functional』を読んでいて、そのときの感想は以前に書いたとおり。そこからの差分としては、はてな社内でこの本の輪読をはじめたこと。輪読がはじまったその週に日本語版の出版が告知され嘆息する一同でしたが、日本最速で輪読を開始できたのは間違いないと思う。 この本の特徴をひとつ挙げろと言われれば、実装に使われている言語がF#であること、というのが大方の回答になるとおもうが、一方でこの本をやるのにF#を実践する必要はない、と考えている。そういうわけで今回輪読における実装言語にはGoとTypeScriptを指名しており、その後Scala勢力も増えたのだけど、進度的には実際にコ

                                                                                    『関数型ドメインモデリング』はF#の本なのか? - 詩と創作・思索のひろば

                                                                                  新着記事