Submit Search
Upload
ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
•
11 likes
•
4,315 views
Tadayoshi Sato
Follow
DevLove 2010/10/27 発表資料。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 34
Download Now
Download to read offline
Recommended
アジャイルコーチが現場で学んだプロダクトオーナーの実際と勘所 POの二番目に大事なことと
アジャイルコーチが現場で学んだプロダクトオーナーの実際と勘所 POの二番目に大事なことと
Yasui Tsutomu
Hiroshima Ruby Conference発表資料
Hiroshima Ruby Conference発表資料
Kakigi Katuyuki
Agile Samurai Dojo Gathering
Agile Samurai Dojo Gathering
irasally omuko
オープンセミナー2016@広島プレゼン資料
オープンセミナー2016@広島プレゼン資料
Kakigi Katuyuki
チケット管理システム大決戦第二弾
チケット管理システム大決戦第二弾
Ryutaro YOSHIBA
UMTPアジャイル開発におけるモデリング活用実践セミナー
UMTPアジャイル開発におけるモデリング活用実践セミナー
Iwao Harada
プロジェクトマネジメントは仕組み化が9割
プロジェクトマネジメントは仕組み化が9割
Mharu
デザイナーにもできる再構築の高速化/負荷分散
デザイナーにもできる再構築の高速化/負荷分散
Hajime Fujimoto
More Related Content
What's hot
2012.03.24 Agile Samurai Dojo Gathering 講演資料
2012.03.24 Agile Samurai Dojo Gathering 講演資料
Toshihiro Hirota
これからの自分戦略 〜組織に埋もれない自分のウリコミ〜 #devlove2012b
これからの自分戦略 〜組織に埋もれない自分のウリコミ〜 #devlove2012b
Yusuke Yamamoto
アジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティス
Yasui Tsutomu
「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮)
Taku Yajima
はじめてのLean Canvas〜最初のアイディアを言語化してみよう #bpstudy
はじめてのLean Canvas〜最初のアイディアを言語化してみよう #bpstudy
Shinichi Nakagawa
ジョイ・インク 役職も部署もない全員主役のマネジメント
ジョイ・インク 役職も部署もない全員主役のマネジメント
Yasui Tsutomu
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
Yasuyuki Fujikawa
ゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみた
秀和 福永
Rxtstudy第12回パネルディスカッション「組織に応じたRedmineの運用法 」
Rxtstudy第12回パネルディスカッション「組織に応じたRedmineの運用法 」
akipii Oga
リーンアジャイルで開発を加速しよう
リーンアジャイルで開発を加速しよう
Shinya Nakajima
はじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル - Agile in a nutshell
Dai FUJIHARA
スクラムナイト#1 デイリースクラムやってます?
スクラムナイト#1 デイリースクラムやってます?
Takahiro Kaihara
Agile UX NYC 2012 Redux in Tokyo (#AgileUXNYC_ja)
Agile UX NYC 2012 Redux in Tokyo (#AgileUXNYC_ja)
Kazumichi (Mario) Sakata
20120316 アジャイルジャパン東京サテライト
20120316 アジャイルジャパン東京サテライト
Toshikazu Inoue
プレゼン初心者にありがちなアンチパターン
プレゼン初心者にありがちなアンチパターン
真俊 横田
開発モデルの作り方(守破離の破)
開発モデルの作り方(守破離の破)
Arata Fujimura
自動化について
自動化について
Yuma Iwasaki
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門
Masahito Zembutsu
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
陽一 滝川
アジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティス
Yasui Tsutomu
What's hot
(20)
2012.03.24 Agile Samurai Dojo Gathering 講演資料
2012.03.24 Agile Samurai Dojo Gathering 講演資料
これからの自分戦略 〜組織に埋もれない自分のウリコミ〜 #devlove2012b
これからの自分戦略 〜組織に埋もれない自分のウリコミ〜 #devlove2012b
アジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティス
「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮)
はじめてのLean Canvas〜最初のアイディアを言語化してみよう #bpstudy
はじめてのLean Canvas〜最初のアイディアを言語化してみよう #bpstudy
ジョイ・インク 役職も部署もない全員主役のマネジメント
ジョイ・インク 役職も部署もない全員主役のマネジメント
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
ゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみた
Rxtstudy第12回パネルディスカッション「組織に応じたRedmineの運用法 」
Rxtstudy第12回パネルディスカッション「組織に応じたRedmineの運用法 」
リーンアジャイルで開発を加速しよう
リーンアジャイルで開発を加速しよう
はじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル - Agile in a nutshell
スクラムナイト#1 デイリースクラムやってます?
スクラムナイト#1 デイリースクラムやってます?
Agile UX NYC 2012 Redux in Tokyo (#AgileUXNYC_ja)
Agile UX NYC 2012 Redux in Tokyo (#AgileUXNYC_ja)
20120316 アジャイルジャパン東京サテライト
20120316 アジャイルジャパン東京サテライト
プレゼン初心者にありがちなアンチパターン
プレゼン初心者にありがちなアンチパターン
開発モデルの作り方(守破離の破)
開発モデルの作り方(守破離の破)
自動化について
自動化について
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
アジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティス
Similar to ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
ドメイン『駆動』『開発』
ドメイン『駆動』『開発』
Hiroshi Maekawa
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
Yuuki Namikawa
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理
You&I
Digital Business and Agile
Digital Business and Agile
Kenji Hiranabe
開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?
開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?
CASAREAL, Inc.
ウォーターフォールとアジャイルを考える #ita_ws
ウォーターフォールとアジャイルを考える #ita_ws
Yusuke Suzuki
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
Rakuten Group, Inc.
クラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCC
Yusuke Suzuki
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
Yusuke Suzuki
Office 365 を使っただけなのに~あなたのテナントも狙われる~
Office 365 を使っただけなのに~あなたのテナントも狙われる~
祥子 松山
はじめてのアジャイル
はじめてのアジャイル
Rakuten Group, Inc.
エンタープライズアジャイルと全体最適について ~アーキテクチャ設計とウォーターフォールの必要性~
エンタープライズアジャイルと全体最適について ~アーキテクチャ設計とウォーターフォールの必要性~
Yusuke Suzuki
リーンスタートアップ、アジャイル開発導入事例
リーンスタートアップ、アジャイル開発導入事例
Arata Fujimura
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
典子 松本
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
Masakazu Muraoka
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
Techcrunch hackathon 2013
Techcrunch hackathon 2013
Nao Tokui
格言にみるリーダーシップ
格言にみるリーダーシップ
Jun Inose
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
Koichi ITO
マイクロソフトにおけるエバンジェリズム活動
マイクロソフトにおけるエバンジェリズム活動
Osamu Monoe
Similar to ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
(20)
ドメイン『駆動』『開発』
ドメイン『駆動』『開発』
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理
Digital Business and Agile
Digital Business and Agile
開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?
開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?
ウォーターフォールとアジャイルを考える #ita_ws
ウォーターフォールとアジャイルを考える #ita_ws
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
クラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCC
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
Office 365 を使っただけなのに~あなたのテナントも狙われる~
Office 365 を使っただけなのに~あなたのテナントも狙われる~
はじめてのアジャイル
はじめてのアジャイル
エンタープライズアジャイルと全体最適について ~アーキテクチャ設計とウォーターフォールの必要性~
エンタープライズアジャイルと全体最適について ~アーキテクチャ設計とウォーターフォールの必要性~
リーンスタートアップ、アジャイル開発導入事例
リーンスタートアップ、アジャイル開発導入事例
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Techcrunch hackathon 2013
Techcrunch hackathon 2013
格言にみるリーダーシップ
格言にみるリーダーシップ
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
マイクロソフトにおけるエバンジェリズム活動
マイクロソフトにおけるエバンジェリズム活動
More from Tadayoshi Sato
Red Hat Tech Night 2019.5 - Camel 3 and Beyond...
Red Hat Tech Night 2019.5 - Camel 3 and Beyond...
Tadayoshi Sato
Red Hat Tech Night 2018 - Apache Camel
Red Hat Tech Night 2018 - Apache Camel
Tadayoshi Sato
Camel on Cloud by Christina Lin
Camel on Cloud by Christina Lin
Tadayoshi Sato
Red Hat の日本でできるグローバルな働き方
Red Hat の日本でできるグローバルな働き方
Tadayoshi Sato
JJBUG 2013 - SwitchYard
JJBUG 2013 - SwitchYard
Tadayoshi Sato
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
"Problem Frame Patterns" 紹介
"Problem Frame Patterns" 紹介
Tadayoshi Sato
"Detecting Defects in Object Oriented Designs: Using Reading Techniques to In...
"Detecting Defects in Object Oriented Designs: Using Reading Techniques to In...
Tadayoshi Sato
"Documenting Frameworks using Patterns" 紹介
"Documenting Frameworks using Patterns" 紹介
Tadayoshi Sato
"Formalizing Architectural Connection" 紹介
"Formalizing Architectural Connection" 紹介
Tadayoshi Sato
"The Coming-of-Age of Software Architecture Research" 紹介
"The Coming-of-Age of Software Architecture Research" 紹介
Tadayoshi Sato
More from Tadayoshi Sato
(11)
Red Hat Tech Night 2019.5 - Camel 3 and Beyond...
Red Hat Tech Night 2019.5 - Camel 3 and Beyond...
Red Hat Tech Night 2018 - Apache Camel
Red Hat Tech Night 2018 - Apache Camel
Camel on Cloud by Christina Lin
Camel on Cloud by Christina Lin
Red Hat の日本でできるグローバルな働き方
Red Hat の日本でできるグローバルな働き方
JJBUG 2013 - SwitchYard
JJBUG 2013 - SwitchYard
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
"Problem Frame Patterns" 紹介
"Problem Frame Patterns" 紹介
"Detecting Defects in Object Oriented Designs: Using Reading Techniques to In...
"Detecting Defects in Object Oriented Designs: Using Reading Techniques to In...
"Documenting Frameworks using Patterns" 紹介
"Documenting Frameworks using Patterns" 紹介
"Formalizing Architectural Connection" 紹介
"Formalizing Architectural Connection" 紹介
"The Coming-of-Age of Software Architecture Research" 紹介
"The Coming-of-Age of Software Architecture Research" 紹介
Recently uploaded
The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))
yoshidakids7
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
Naomi Yamasaki
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
Takayuki Nakayama
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
honeshabri
チームで開発するための環境を整える
チームで開発するための環境を整える
onozaty
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
IGDA Japan SIG-Audio
バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析
sugiuralab
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
iPride Co., Ltd.
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
iPride Co., Ltd.
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG-Audio
00001_test_automation_portfolio_20240313
00001_test_automation_portfolio_20240313
ssuserf8ea02
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024
Hideki Saito
Recently uploaded
(12)
The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
チームで開発するための環境を整える
チームで開発するための環境を整える
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
00001_test_automation_portfolio_20240313
00001_test_automation_portfolio_20240313
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024
ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation
1.
ビジネスロジック 実装進化論 2010年10月27日 佐藤 匡剛 http://ameblo.jp/ouobpo An Evolution
of Business Logic Implementation
2.
• 仕事 - Software
AG株式会社 グローバルコンサルタンシー サービス webMethodsコンサルタント - 書籍の執筆/翻訳など • Web - ブログ: http://ameblo.jp/ouobpo - Twitter: tadayosi • 趣味 - Kindleで読書 - 日本ベジタリアン協会会員 佐藤 匡剛(さとう ただよし) http://www.flickr.com/photos/robertnyman/189691155/
3.
『プログラミングScala』年明け発売! 日本語版
4.
Domain Modelパターン は難しい?
5.
http://www.martinfowler.com/eaaCatalog/domainModel.html
6.
Domain Modelパターンは... •実在する •超人的なマジックではない •ビジネスロジック実装の試行錯誤の中で自然 に り着く道である
7.
プログラマ黎明期 http://www.flickr.com/photos/nickhubbard/2878833485/
8.
#!/usr/bin/env perl use strict; use
CGI::Carp qw(fatalsToBrowser); require ‘util.pl’ my %FORM = util::read_form('POST', 'utf8'); # ビジネスロジック? ... print "Content-type: text/htmlnn"; print<<HTML_END; <html> <head> <title>注文確認</title> </head> <body> ... </body> </html> HTML_END
9.
Perl/CGI order.pl DB ファイル ビジネス ロジック HTML データ アクセス
10.
public class OrderServlet
extends HttpServlet { protected void service( HttpServletRequest request, HttpServletResponse response) { processOrder(request, response); request .getRequestDispatcher( “/order/confirm.jsp”) .forward(request, response); } private void processOrder( HttpServletRequest request, HttpServletResponse response) { // ビジネスロジック? ... } ...
11.
Servlet/JSP OrderServlet DB XML ビジネス ロジック データ アクセス /order/confirm.jsp HTML
12.
レイヤアーキテクチャ の発見 http://www.flickr.com/photos/bloggingbookshelf/5084749109/
13.
ドメイン層 データアクセス層プレゼン層 Transaction Script DB アクション アクション アクション アクション サービス (ユースケースA) サービス (ユースケースB) サービス (ユースケースC) サービス (ユースケースD) DAO DAO DAO
14.
public class ProcessOrderServiceImpl implements
IProcessOrderService { private IOrderDao fOrderDao; private ICustomerDao fCustomerDao; public List<OrderBean> findOrders( CustomerBean customer) { ... } public void confirmOrder( OrderBean order, CustomerBean customer) { ... } public void cancelOrder( OrderBean order, CustomerBean customer) { ... } ...
15.
Transaction Script • プレゼン、ビジネスロジック、データアクセ スの各層は分離される •
ビジネスロジックはユースケース単位で構成さ れる × ビジネスロジックが複雑になると、コード重 複の制御が難しくなる
16.
Table Module ドメイン層 データアクセス層プレゼン層 DB アクション アクション アクション アクション サービス (ユースケースA) サービス (ユースケースB) サービス (ユースケースC) サービス (ユースケースD) DAO DAO DAO ロジック (テーブルX) ロジック (テーブルY) ロジック (テーブルZ)
17.
public class ProcessOrderServiceImpl implements
IProcessOrderService { private IOrderLogic fOrderLogic; private ICustomerLogic fCustomerLogic; public List<OrderBean> findOrders( CustomerBean customer) { return fOrderLogic.findByCustomer(customer); } public void confirmOrder( OrderBean order, CustomerBean customer) { fOrderLogic.confirm(order, customer); } public void cancelOrder( OrderBean order, CustomerBean customer) { fOrderLogic.cancel(order, customer); } ...
18.
public class OrderLogicImpl implements
IOrderLogic { private IOrderDao fOrderDao; private ICustomerLogic fCustomerLogic; public List<OrderBean> findByCustomer( CustomerBean customer) { return fOrderDao. findByCustomerId(customer.getId()); } public void confirm( OrderBean order, CustomerBean customer) { ... } public void cancel( OrderBean order, CustomerBean customer) { ... } ...
19.
Table Module • プレゼン、ビジネスロジック、データアクセ スの各層は分離される •
ビジネスロジックはさらに2層に分かれる - Service Layer = ユースケース単位 - ドメインロジック = DBテーブル単位 • 実用レベルでは問題ないが、コードにムダが 多く美しくない
20.
キャズムを超える http://www.flickr.com/photos/matheus_momesso/4469788827/
21.
総称関数(CLOS) ;;; クラス定義 (defclass order
() ((number :accessor order-number ...))) (defmethod confirm ((self order)) (... (order-number self))) ;;; 実行コード (setq o (make-instance ‘order :number 12345)) (confirm o)
22.
confirm(order); order.confirm();
23.
総称関数 → オブジェクト class
OrderLogic { static void confirm( OrderBean order, CustomerBean customer) { order.getOrderNo(); ... OrderLogic .confirm(order, customer); class Order { String orderNo; void confirm( Customer customer) { this.orderNo; ... order.confirm(customer); Table Module Domain Model
24.
Domain Model ドメイン層 データアクセス層プレゼン層 DB アクション アクション アクション アクション サービス (ユースケースA) サービス (ユースケースB) サービス (ユースケースC) サービス (ユースケースD) ORM ORM ORM ドメイン オブジェクト ドメイン オブジェクト ドメイン オブジェクト
25.
public class ProcessOrderServiceImpl implements
IProcessOrderService { private IOrderRepository fOrderRepository; private ICustomerRepository fCustomerRepository; public List<Order> findOrders( Customer customer) { return fOrderRepository.findBy(customer); } public void confirmOrder(Order order) { order.confirm(); } public void cancelOrder(Order order) { order.cancel(); } ...
26.
public class Order
{ private Customer fCustomer; public void confirm() { ... } public void process() { ... } public void cancel() { ... } ...
27.
Domain Modelのメリット • 再利用性、メンテナンス性が高くなる •
ロジックの置き場に悩まない • 複雑なビジネスロジックをモデルによって 可視化できる • コードの字面がシンプルになり、美しい
28.
まとめ •コードの重複排除を追究すると、自然 とTable Moduleまで り着く •Table
Moduleが総称関数によるOOの実 装と気づけば、Domain Modelへの道が 拓ける
29.
最後に
30.
“Architecture teams must
not siphon off all the best and brightest.” アーキテクチャチームに 最も優秀なメンバ を集めてはいけない。 — Eric Evans, Domain-Driven Design
31.
テクノロジからドメインへ • テクノロジの活用に忙殺されてい ないだろうか? - 顧客に価値をもたらすのはイン フラやフレームワークではない •
ビジネスに真の力を与えるのは、 ドメイン=ビジネスロジック http://www.flickr.com/photos/wwworks/2222523486/
32.
ドメインを戦い抜くための武器 •オブジェクト指向分析/ 設計の基礎 •GRASPパターン - 情報エキスパート - 高凝集 -
低結合 •必要なのはDIコンテ ナ、ORM、RIA、NoSQLな どの知識ではない!
33.
ドメインで皆さんの 力を発揮しよう!
34.
ありがとう ございました!
Download Now