タグ

dddに関するgakkiyのブックマーク (16)

  • 実践クリーンアーキテクチャ with Java

    この記事について こちらの記事はクリーンアーキテクチャの Java 実装による解説記事です。 MVC フレームワークに組み込むために一部変更している部分もあります。 それをふまえてご覧ください。 講演内容が @IT さまに記事にしていただけました。 あわせてご参照ください。 https://www.atmarkit.co.jp/ait/articles/1907/08/news002.html クリーンアーキテクチャよりも軽量で無理なく導入しやすいアプリケーションアーキテクチャパターンを考案しました。 https://nrslib.com/adop/ スライド JJUG CCC 2019 Spring での発表資料です。 この発表をするにあたって記事を書くことにしました。 YouTube YouTube でこちらの解説を行いました。 その他解説もしています。もしよろしければチャンネル登録を

    実践クリーンアーキテクチャ with Java
  • isolating the domainを読んでみた - Qiita

    関ジャバのDDD勉強会で紹介されていた isolating the domain を読んでみました。 紹介のスライド https://speakerdeck.com/haljik/isolating-the-domainfalseshao-jie プロジェクト https://github.com/system-sekkei/isolating-the-domain ちょうど直近のプロジェクトでDDDに沿った設計を導入することになったので、その参考にしたい、という意図です。 実際にDDDを導入しようとすると、各層のディレクトリ名の付け方でチームメンバーの意見が一致しなかったりするので、そういうところはパクっていくのがいいかなと考えてます :) プロジェクトの概要 ユーザ情報のCRUD操作機能を提供しているWebアプリケーション。 Java + Spring MVC + MyBatis。 D

    isolating the domainを読んでみた - Qiita
    gakkiy
    gakkiy 2022/02/09
  • ボトムアップドメイン駆動設計 後編

    はじめに この記事は続編です。 前編記事: ボトムアップドメイン駆動設計 https://nrslib.com/bottomup-ddd/ 順序立っての説明になっておりますので、前編からご覧になることを強くお勧めします。 ファクトリ 独自の採番システム ところで UserId は Guid (Globally Unique Identifier)です。 Guid は事実上どこでどのタイミングで生成したとしてもユニークになります。 その性質を利用して User は一意な id をコンストラクタで生成していました。 しかしプロダクトによっては Guid ではなく独自の採番機能を採用したいという事例は往々にしてあります。 そこでデータベースの採番テーブルを利用した独自の採番システムを利用して User オブジェクトをインスタンス化してみましょう。 コンストラクタで SQL を実行して採番していま

    ボトムアップドメイン駆動設計 後編
    gakkiy
    gakkiy 2022/02/09
  • VaughnVernon - Overview

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    VaughnVernon - Overview
    gakkiy
    gakkiy 2016/06/07
  • InfoQ: コンテキストマッピングによる戦略的ドメイン駆動設計

    図1.ユビキタス言語はモデルを表現するのに用いられる唯一の言語でなければならない。チーム内のメンバは誰もが、個別の各用語についてあいまいさの残らない形で合意せねばならず、翻訳する必要がないようにしなければならない。 コードはモデルを表現する主要な形態です。要件なり設計の一部分をとらえる過程においては、それ以外の成果物も必要になるかもしれません。しかし、アプリケーションのふるまいと恒常的に同期しているのはコードそれ自体なのです。このようなモデリングの理想郷は、いくぶん脆弱なエコシステムです。前述したような条件が与えられれば実現は可能ですが、むやみに拡大することはできません。概念的統一性を妥協することなく、モデルを拡大することができる最大の範囲が、コンテキスト("context")と呼ばれています。 境界つきコンテキストに踏み込む ドメイン駆動設計において、コンテキストは次のように定義されてい

    InfoQ: コンテキストマッピングによる戦略的ドメイン駆動設計
    gakkiy
    gakkiy 2016/02/29
  • ドメイン駆動設計・大規模戦略編・境界づけられたコンテキスト - Strategic Choice

    BOUNDED CONTEXTモデルのなわばり俯瞰図所属するストーリの俯瞰図です。大規模戦略編どういうこと?巨大なプロジェクトになれば、複数の異なったモデルが存在することになります。これらは無理矢理一つのモデルに統一するのではなく、それぞれのドメインモデルに「境界」を設け、明確な適用範囲を定めるようにします。どうして?別々のモデルに基づくコードが組み合わさると、バグの温床となり、信頼できなくなり、理解しにくくなります。メンバ間のコミュニケーションも混乱することになります。どうすれば?コンテキストを定義するモデルが適用される範囲を「コンテキスト」として明示的に定義します。明示的な境界は、「チーム編成」「アプリケーションの用途」「コードベース」「データベーススキーマ」などの、物理的表現の観点に沿って設定します。一慣性を保つその境界内では、モデルを厳密に一貫性のあるものに保ちます。境界の外部の問

    gakkiy
    gakkiy 2016/01/27
  • 「これって、ドメイン駆動設計?」という資料を公開しました。 - GoTheDistance

    いくら人の話を聞いてもピンと来ないし、DDDを読んでも全然頭に入らないので、自分なりに解釈してまとめることにしました。よろしければ、どぞ。 これって、ドメイン駆動設計? from Michitaka Yumoto www.slideshare.net ドメインからモデルを抽出→モデルの振る舞いと情報を定義→サービスに汎化させる、という流れを取っています。行間多めです。さーせん。 ドメインというのは、どうも2つの性質を持っている言葉のようだと思いました。 その世界で現状行われていること 行われていることに対する希望や不平不満からくる要求(関心事と言うらしい) 上記の定義がだいだいあってるとすると、「その世界で現在進行中の物事及びそれに付随する要求をキチンと実装できる設計にしようぜ」って話がドメイン駆動設計の総論で良いのでは、というのが1つ。 で、ドメイン(特にいまやってる物事)を抽象化す

    「これって、ドメイン駆動設計?」という資料を公開しました。 - GoTheDistance
  • ドメイン駆動設計とは - 金融取引アプリケーションを例に

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    ドメイン駆動設計とは - 金融取引アプリケーションを例に
    gakkiy
    gakkiy 2015/04/14
  • 5.2. データベースアクセス(JPA編) — TERASOLUNA Global Framework Development Guideline 1.0.1.RELEASE documentation

    関連エンティティのfetch方法を指定する設定値をデフォルト値から変更した方がよいケースの具体例について。

    5.2. データベースアクセス(JPA編) — TERASOLUNA Global Framework Development Guideline 1.0.1.RELEASE documentation
    gakkiy
    gakkiy 2015/02/06
  • 4.1. ドメイン層の実装 — TERASOLUNA Global Framework Development Guideline 1.0.0.publicreview documentation

    4.1.1. ドメイン層の役割¶ ドメイン層は、 アプリケーション層に提供する業務ロジックを実装するためのレイヤとなる。 ドメイン層の実装は、以下3つに分かれる。

    gakkiy
    gakkiy 2015/02/06
  • ドメイン駆動設計とJava 8 ラムダ式 | GuildWorks Blog

    河上です。 Java 8 でやっとラムダ式が使えるようになって喜んでいる今日このごろですが、業務アプリケーション・プログラミングであるドメイン駆動設計という文脈でどういった変化がおこるのかを考えてみます。 まず適用できそうなところとして思いつくのは以下です。 Specificationパターンの実装 ファーストクラスコレクション内部のコレクション操作 それぞれの実装例として幾分恣意的ではありますが、シンプルな要件を、ラムダ式を利用しないバージョンと、利用するバージョンでそれぞれ実装してみたいと思います。 要件:「ある会員制サイトで、年収800万円以上、且つ、正社員、且つ、課長以上、というステータスを持つ会員を幹部候補として区別し、絞込などをおこないたい」 まずは、年収800万円以上、且つ、正社員、且つ、課長以上という、複合条件をSpecificationパターンの実装方法の1つである、「C

    ドメイン駆動設計とJava 8 ラムダ式 | GuildWorks Blog
  • かとじゅんの技術日誌

    Rustでブロッキングキューを実装した話。これはRustのカレンダー | Advent Calendar 2023 - Qiitaの22日目の記事です。 ブロッキングキューはご存じだろうか。(えっ…スレッドはブロックしたくない…と思った人は最後まで読むとよいかも) Javaにはあります。 docs.oracle.com 要素の取得時にキューが空でなくなるまで待機したり、要素の格納時にキュー内に空きが生じるまで待機する操作を追加でサポートしたりするQueueです。 これはRustの標準にはない。今回はブロッキングキューを実装してみる。 「そういえば、ブロッキングキューが欲しい!」と思ったときに、ぜひこのブログ記事を思い出してほしい。 続きを読む Scala 3におけるデータ指向プログラミング(以下DOP)について深掘りする。久々にScalaの話題を取り上げるが、これはScala Advent

    かとじゅんの技術日誌
    gakkiy
    gakkiy 2012/05/21
  • [ 技術講座 ] 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 モジ

    gakkiy
    gakkiy 2012/05/21
  • 戦略的設計入門 - Digital Romanticism

    "Beautiful Development"(2011.04.09 DevLOVE)の講演資料と原稿 はじめに 日(4/9)、DevLove様と共同で、第2回"Beautiful Development"を開催致しました。これは、日語版DDDの発売を記念し、DDDに造詣の深い方々に集まって頂き、2枠構成で講演して頂くという豪華なものでした。このカンファレンスでトリを務めさせて頂きましたので、講演資料と原稿を公開致します*1。なお、今回の発表は「ドメイン駆動設計入門」では駆け足でまとめてしまった部分を、改めてクローズアップした続編と考えて頂くこともできるでしょう。 アジェンダはこちら 戦略的設計とは? サンプル業務 モデル駆動設計をすると? 戦略的設計 スライドはこちら 戦略的設計とは? 「戦略的設計(Strategic Design)」とは、DDD第4部のタイトルです。DDDは全体で

    戦略的設計入門 - Digital Romanticism
    gakkiy
    gakkiy 2011/04/11
  • Eric EvansがDDD(ドメイン駆動設計)を語る

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    gakkiy
    gakkiy 2008/06/28
  • ドメインロジックの実装方法とドメイン駆動設計 :: handsOut.jp

    スライド1: BPStudy 第7回 2008年3月28日ドメインロジックの実装方法とドメイン駆動設計Ouobpo佐藤 匡剛http://ameblo.jp/ouobpo スライド2: もくじ・ 第Ⅰ部 ドメインロジックの実装方法・ 第Ⅱ部 ドメイン駆動設計の紹介2008/03/28 BPStudy 第7回 2 スライド3: 第Ⅰ部ドメインロジックの実装方法2008/03/28 BPStudy 第7回 3 スライド4: 3層アーキテクチャ・ エンタープライズアプリの典型的アーキテクチャプレゼンテーション層 ドメイン層 インテグレーション層アクションアクションアクションWebアプリFWサービスレイヤーPOJOPOJOPOJO POJOルールエンジンワークフローエンジンDI/IoCコンテナDAODAOインテグレーションゲートウェイデータアクセスFWシステム間統合MWFW ・・・ フレーム

    gakkiy
    gakkiy 2008/06/28
  • 1