Submit Search
Upload
ドメイン駆動設計を実践するプログラマーの悩み
•
9 likes
•
4,555 views
haljik Seiji
Follow
DDD Alliance ドメイン駆動設計をやってみた 6つの現場からの報告 でお話させていただいた時の資料です
Read less
Read more
Software
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 25
Download now
Download to read offline
Recommended
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発
Mao Ohnishi
RDRA DDD Agile
RDRA DDD Agile
増田 亨
ドメイン駆動設計 思えば遠くにきたもんだ
ドメイン駆動設計 思えば遠くにきたもんだ
増田 亨
ドメイン駆動設計入門
ドメイン駆動設計入門
Takuya Kitamura
ドメイン駆動設計におけるシナリオテストの活用
ドメイン駆動設計におけるシナリオテストの活用
Takehiro Inoue
某S社のddd(メイリオ)
某S社のddd(メイリオ)
kumake
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
増田 亨
Recommended
「ドメイン駆動設計」の複雑さに立ち向かう
「ドメイン駆動設計」の複雑さに立ち向かう
増田 亨
20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発
Mao Ohnishi
RDRA DDD Agile
RDRA DDD Agile
増田 亨
ドメイン駆動設計 思えば遠くにきたもんだ
ドメイン駆動設計 思えば遠くにきたもんだ
増田 亨
ドメイン駆動設計入門
ドメイン駆動設計入門
Takuya Kitamura
ドメイン駆動設計におけるシナリオテストの活用
ドメイン駆動設計におけるシナリオテストの活用
Takehiro Inoue
某S社のddd(メイリオ)
某S社のddd(メイリオ)
kumake
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
増田 亨
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
増田 亨
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
増田 亨
FiNC DDD第一回勉強会
FiNC DDD第一回勉強会
裕紀 重村
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
増田 亨
ドメイン駆動設計入門
ドメイン駆動設計入門
増田 亨
毎日が越境だ!
毎日が越境だ!
増田 亨
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
増田 亨
ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718
Mao Ohnishi
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Yoshimura Soichiro
ぐるぐるDDD(ドメイン駆動設計)に参加してみました
ぐるぐるDDD(ドメイン駆動設計)に参加してみました
Takuya Kawabe
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
増田 亨
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Atsuhiro Kubo
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
保守とDDDと私
保守とDDDと私
Takuya Kawabe
ドメイン駆動開発 勉強会 ①
ドメイン駆動開発 勉強会 ①
Kakeru Kikuchi
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
これって、ドメイン駆動設計?
これって、ドメイン駆動設計?
Michitaka Yumoto
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
増田 亨
DDDをScrumで廻す あるいは ScrumをDDDで廻す
DDDをScrumで廻す あるいは ScrumをDDDで廻す
Kiro Harada
うちの開発におけるXD利用法
うちの開発におけるXD利用法
Kazuma Sekiguchi
パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)
odakeiji
More Related Content
What's hot
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
増田 亨
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
増田 亨
FiNC DDD第一回勉強会
FiNC DDD第一回勉強会
裕紀 重村
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
増田 亨
ドメイン駆動設計入門
ドメイン駆動設計入門
増田 亨
毎日が越境だ!
毎日が越境だ!
増田 亨
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
増田 亨
ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718
Mao Ohnishi
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Yoshimura Soichiro
ぐるぐるDDD(ドメイン駆動設計)に参加してみました
ぐるぐるDDD(ドメイン駆動設計)に参加してみました
Takuya Kawabe
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
増田 亨
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Atsuhiro Kubo
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
保守とDDDと私
保守とDDDと私
Takuya Kawabe
ドメイン駆動開発 勉強会 ①
ドメイン駆動開発 勉強会 ①
Kakeru Kikuchi
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
これって、ドメイン駆動設計?
これって、ドメイン駆動設計?
Michitaka Yumoto
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
増田 亨
DDDをScrumで廻す あるいは ScrumをDDDで廻す
DDDをScrumで廻す あるいは ScrumをDDDで廻す
Kiro Harada
What's hot
(20)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
FiNC DDD第一回勉強会
FiNC DDD第一回勉強会
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計の学習曲線とブレークポイント
ドメイン駆動設計入門
ドメイン駆動設計入門
毎日が越境だ!
毎日が越境だ!
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計とは何か 【入門編】
ドメイン駆動設計の捉え方 20150718
ドメイン駆動設計の捉え方 20150718
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
ぐるぐるDDD(ドメイン駆動設計)に参加してみました
ぐるぐるDDD(ドメイン駆動設計)に参加してみました
3週連続DDDその3 ドメイン駆動設計 戦略的設計
3週連続DDDその3 ドメイン駆動設計 戦略的設計
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
保守とDDDと私
保守とDDDと私
ドメイン駆動開発 勉強会 ①
ドメイン駆動開発 勉強会 ①
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
これって、ドメイン駆動設計?
これって、ドメイン駆動設計?
ドメイン駆動設計 分析しながら設計する
ドメイン駆動設計 分析しながら設計する
DDDをScrumで廻す あるいは ScrumをDDDで廻す
DDDをScrumで廻す あるいは ScrumをDDDで廻す
Similar to ドメイン駆動設計を実践するプログラマーの悩み
うちの開発におけるXD利用法
うちの開発におけるXD利用法
Kazuma Sekiguchi
パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)
odakeiji
Web勉強会(HTML+CSS+JS入門の入門)
Web勉強会(HTML+CSS+JS入門の入門)
Noriaki UCHIYAMA
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
Koichiro Matsuoka
TDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
Koichi ITO
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
JustSystems Corporation
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組み
Yuta Matsumura
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
Ryo Mitoma
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割
Toshiyuki Hirata
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
Etsuji Nakai
Modeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah models
Kenji Hiranabe
リーンアジャイルで開発を加速しよう
リーンアジャイルで開発を加速しよう
Shinya Nakajima
楽天エンジニアライフ
楽天エンジニアライフ
Rakuten Group, Inc.
Static Web AppsとBlazor WebAssemblyのすすめ
Static Web AppsとBlazor WebAssemblyのすすめ
TomomitsuKusaba
2020年01月24-25日 「仮説検証型UXデザイン特論」 講義資料 @産技大講義
2020年01月24-25日 「仮説検証型UXデザイン特論」 講義資料 @産技大講義
chachaki chachaki
.NET Lab2022年2月
.NET Lab2022年2月
TomomitsuKusaba
デザイン・エンジニアがWeb開発で考えること
デザイン・エンジニアがWeb開発で考えること
Kohei Kakudo
JPC2018[H4]マイクロソフトの Azure オープン ソース戦略とパートナー エコシステム
JPC2018[H4]マイクロソフトの Azure オープン ソース戦略とパートナー エコシステム
MPN Japan
Similar to ドメイン駆動設計を実践するプログラマーの悩み
(20)
うちの開発におけるXD利用法
うちの開発におけるXD利用法
パネルディスカッション資料(公開版)
パネルディスカッション資料(公開版)
Web勉強会(HTML+CSS+JS入門の入門)
Web勉強会(HTML+CSS+JS入門の入門)
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
ドメイン駆動設計のプラクティスでカバーできること、できないこと[DDD]
TDDはじめる前に
TDDはじめる前に
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組み
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
DeNAにおけるSWETの役割
DeNAにおけるSWETの役割
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
Modeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah models
リーンアジャイルで開発を加速しよう
リーンアジャイルで開発を加速しよう
楽天エンジニアライフ
楽天エンジニアライフ
Static Web AppsとBlazor WebAssemblyのすすめ
Static Web AppsとBlazor WebAssemblyのすすめ
2020年01月24-25日 「仮説検証型UXデザイン特論」 講義資料 @産技大講義
2020年01月24-25日 「仮説検証型UXデザイン特論」 講義資料 @産技大講義
.NET Lab2022年2月
.NET Lab2022年2月
デザイン・エンジニアがWeb開発で考えること
デザイン・エンジニアがWeb開発で考えること
JPC2018[H4]マイクロソフトの Azure オープン ソース戦略とパートナー エコシステム
JPC2018[H4]マイクロソフトの Azure オープン ソース戦略とパートナー エコシステム
ドメイン駆動設計を実践するプログラマーの悩み
1.
ドメイン駆動設計を実践しているプ ログラマーの悩み DDD Alliance! ドメイン駆動設計をやってみた 6つの現場からの報告
2.
自己紹介 • 河上 晴司(かわかみ せいじ) •
Twi&er: @haljik • 関西在住のフリーランスエンジニア • そら製作所 という屋号でお仕事をしています • JUG:関Javaのメンバー、DDD Alliance 発起人メンバー、 関西 DDD.java 主催
3.
今日話すこと DDDを実践していて、主にプログラミングの面で普段悩んでいる こと、自分の中でまだ解決策が見出せていないものを共有しま す。 DDDそのものより、DDDを実践する上での技術的課題にスポッ トを当てており、 とてもコンテキストの狭いお話です。
4.
背景 • Java • BtoC •
Webアプリケーション開発 • 人材サービス
5.
アーキテクチャ
6.
7.
主な技術要素 1 • UI層 •
Thymeleaf HTMLをHTMLのまま記述できるテンプレートエ ンジン • Spring MVC リクエストデータをJavaオブジェクトにマッピン グしたりとMVCの枠組みを提供してくれる
8.
主な技術要素 2 • 永続化層 •
MyBa&s 生のSQLが書け、SQLの結果とJavaオブジェクトのマ ッピングが柔軟にできる
9.
主な技術要素 3 • バリデーション •
BeanValida*on
10.
このアーキテクチャの狙い • 基本的にViewや、永続化層との間に余計な層ははさまないこと • 永続化層や、UI層からモデルへのフィードバックをかけやすい こと •
永続化層や、UI層に漏れでたビジネスロジックをモデルに取込 みやすいこと • SQLや、HTMLなどその層に特化した技術がそのまま泥臭く使 えること
11.
モデルの歪みに気づけること
12.
人は作りやすい方向に流れてしまう ので... モデルにロジックを集める方向に作 りやすくする
13.
この狙いはある程度のレベルで達成 できていると思う
14.
とはいえ現実は
15.
1つ目の悩みごと
16.
RDBからのAggregate復元 • MyBa&sのコンストラクタマッピングは辛い • コンストラクタマッピングしないと、デフォルトコンストラク タが必要になる •
final宣言できない • 1 + Nマッピング
17.
こんなフレームワークがあれば • ファクトリメソッド指定したマッピング • 予め生成しておいたオブジェクトを別オブジェクトのフィール ドにマッピング
18.
2つ目の悩みごと
19.
UIからのデータバインディング • public な
se+er が必要 • 場合によってはデフォルトコンストラクタも必要 • 型のミスマッチ問題 • 階層を持った多肢選択UIや、一覧表入力系UI Indexed Propertyや、Mapped Property のバインディングが煩雑
20.
頑張ればはんとかなるけど… UIはす ぐに変わるので変わる度に頑張るの がつらい
21.
3つ目の悩みごと
22.
バリデーション • 型のミスマッチ • 意味的なチェック •
DBを必要とするチェック • 限定的な文脈でのみ行われるチェック
23.
これらを宣言的に凝集させる事のできるバリ デーションフレームワークをまだ知らない
24.
まとめ • 要はデータの境界面がつらい • Javaのオブジェクトから、「何か」への変換はそんなにつらく ない •
「何か」から、Javaのオブジェクトへの変換部分に課題が多い
25.
最後に いろいろ言いましたが、なんとかなっていま す。怖がらずにドメイン駆動開発を実践して いきましょう。
Download now