SlideShare a Scribd company logo
1 of 34
Download to read offline
ビジネスロジック
実装進化論
2010年10月27日
佐藤 匡剛
http://ameblo.jp/ouobpo
An Evolution of Business Logic Implementation
• 仕事
- Software AG株式会社
グローバルコンサルタンシー
サービス
webMethodsコンサルタント
- 書籍の執筆/翻訳など
• Web
- ブログ: http://ameblo.jp/ouobpo
- Twitter: tadayosi
• 趣味
- Kindleで読書
- 日本ベジタリアン協会会員
佐藤 匡剛(さとう ただよし)
http://www.flickr.com/photos/robertnyman/189691155/
『プログラミングScala』年明け発売!
日本語版
Domain Modelパターン
は難しい?
http://www.martinfowler.com/eaaCatalog/domainModel.html
Domain Modelパターンは...
•実在する
•超人的なマジックではない
•ビジネスロジック実装の試行錯誤の中で自然
に り着く道である
プログラマ黎明期
http://www.flickr.com/photos/nickhubbard/2878833485/
#!/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
Perl/CGI
order.pl
DB
ファイル
ビジネス
ロジック
HTML
データ
アクセス
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) {
// ビジネスロジック?
...
}
...
Servlet/JSP
OrderServlet
DB
XML
ビジネス
ロジック
データ
アクセス
/order/confirm.jsp
HTML
レイヤアーキテクチャ
の発見
http://www.flickr.com/photos/bloggingbookshelf/5084749109/
ドメイン層 データアクセス層プレゼン層
Transaction Script
DB
アクション
アクション
アクション
アクション
サービス
(ユースケースA)
サービス
(ユースケースB)
サービス
(ユースケースC)
サービス
(ユースケースD)
DAO
DAO
DAO
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) {
...
}
...
Transaction Script
• プレゼン、ビジネスロジック、データアクセ
スの各層は分離される
• ビジネスロジックはユースケース単位で構成さ
れる
× ビジネスロジックが複雑になると、コード重
複の制御が難しくなる
Table Module
ドメイン層 データアクセス層プレゼン層
DB
アクション
アクション
アクション
アクション
サービス
(ユースケースA)
サービス
(ユースケースB)
サービス
(ユースケースC)
サービス
(ユースケースD)
DAO
DAO
DAO
ロジック
(テーブルX)
ロジック
(テーブルY)
ロジック
(テーブルZ)
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);
}
...
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) {
...
}
...
Table Module
• プレゼン、ビジネスロジック、データアクセ
スの各層は分離される
• ビジネスロジックはさらに2層に分かれる
- Service Layer = ユースケース単位
- ドメインロジック = DBテーブル単位
• 実用レベルでは問題ないが、コードにムダが
多く美しくない
キャズムを超える
http://www.flickr.com/photos/matheus_momesso/4469788827/
総称関数(CLOS)
;;; クラス定義
(defclass order ()
((number :accessor order-number ...)))
(defmethod confirm ((self order))
(... (order-number self)))
;;; 実行コード
(setq o (make-instance ‘order :number 12345))
(confirm o)
confirm(order);
order.confirm();
総称関数 → オブジェクト
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
Domain Model
ドメイン層 データアクセス層プレゼン層
DB
アクション
アクション
アクション
アクション
サービス
(ユースケースA)
サービス
(ユースケースB)
サービス
(ユースケースC)
サービス
(ユースケースD)
ORM
ORM
ORM
ドメイン
オブジェクト
ドメイン
オブジェクト
ドメイン
オブジェクト
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();
}
...
public class Order {
private Customer fCustomer;
public void confirm() {
...
}
public void process() {
...
}
public void cancel() {
...
}
...
Domain Modelのメリット
• 再利用性、メンテナンス性が高くなる
• ロジックの置き場に悩まない
• 複雑なビジネスロジックをモデルによって
可視化できる
• コードの字面がシンプルになり、美しい
まとめ
•コードの重複排除を追究すると、自然
とTable Moduleまで り着く
•Table Moduleが総称関数によるOOの実
装と気づけば、Domain Modelへの道が
拓ける
最後に
“Architecture teams must not siphon
off all the best and brightest.”
アーキテクチャチームに
最も優秀なメンバ
を集めてはいけない。
— Eric Evans, Domain-Driven Design
テクノロジからドメインへ
• テクノロジの活用に忙殺されてい
ないだろうか?
- 顧客に価値をもたらすのはイン
フラやフレームワークではない
• ビジネスに真の力を与えるのは、
ドメイン=ビジネスロジック
http://www.flickr.com/photos/wwworks/2222523486/
ドメインを戦い抜くための武器
•オブジェクト指向分析/
設計の基礎
•GRASPパターン
- 情報エキスパート
- 高凝集
- 低結合
•必要なのはDIコンテ
ナ、ORM、RIA、NoSQLな
どの知識ではない!
ドメインで皆さんの
力を発揮しよう!
ありがとう
ございました!

More Related Content

What's hot

2012.03.24 Agile Samurai Dojo Gathering 講演資料
2012.03.24 Agile Samurai Dojo Gathering 講演資料2012.03.24 Agile Samurai Dojo Gathering 講演資料
2012.03.24 Agile Samurai Dojo Gathering 講演資料Toshihiro Hirota
 
これからの自分戦略 〜組織に埋もれない自分のウリコミ〜 #devlove2012b
これからの自分戦略 〜組織に埋もれない自分のウリコミ〜 #devlove2012bこれからの自分戦略 〜組織に埋もれない自分のウリコミ〜 #devlove2012b
これからの自分戦略 〜組織に埋もれない自分のウリコミ〜 #devlove2012bYusuke Yamamoto
 
アジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティスアジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティスYasui Tsutomu
 
「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮) 「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮) Taku Yajima
 
はじめてのLean Canvas〜最初のアイディアを言語化してみよう #bpstudy
はじめてのLean Canvas〜最初のアイディアを言語化してみよう #bpstudyはじめてのLean Canvas〜最初のアイディアを言語化してみよう #bpstudy
はじめてのLean Canvas〜最初のアイディアを言語化してみよう #bpstudyShinichi Nakagawa
 
ジョイ・インク 役職も部署もない全員主役のマネジメント
ジョイ・インク 役職も部署もない全員主役のマネジメントジョイ・インク 役職も部署もない全員主役のマネジメント
ジョイ・インク 役職も部署もない全員主役のマネジメントYasui Tsutomu
 
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発Yasuyuki Fujikawa
 
ゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみたゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみた秀和 福永
 
Rxtstudy第12回パネルディスカッション「組織に応じたRedmineの運用法 」
Rxtstudy第12回パネルディスカッション「組織に応じたRedmineの運用法 」Rxtstudy第12回パネルディスカッション「組織に応じたRedmineの運用法 」
Rxtstudy第12回パネルディスカッション「組織に応じたRedmineの運用法 」akipii Oga
 
リーンアジャイルで開発を加速しよう
リーンアジャイルで開発を加速しようリーンアジャイルで開発を加速しよう
リーンアジャイルで開発を加速しようShinya Nakajima
 
はじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル - Agile in a nutshellはじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル - Agile in a nutshellDai FUJIHARA
 
スクラムナイト#1 デイリースクラムやってます?
スクラムナイト#1 デイリースクラムやってます?スクラムナイト#1 デイリースクラムやってます?
スクラムナイト#1 デイリースクラムやってます?Takahiro Kaihara
 
Agile UX NYC 2012 Redux in Tokyo (#AgileUXNYC_ja)
Agile UX NYC 2012 Redux in Tokyo (#AgileUXNYC_ja)Agile UX NYC 2012 Redux in Tokyo (#AgileUXNYC_ja)
Agile UX NYC 2012 Redux in Tokyo (#AgileUXNYC_ja)Kazumichi (Mario) Sakata
 
20120316 アジャイルジャパン東京サテライト
20120316 アジャイルジャパン東京サテライト20120316 アジャイルジャパン東京サテライト
20120316 アジャイルジャパン東京サテライトToshikazu Inoue
 
プレゼン初心者にありがちなアンチパターン
プレゼン初心者にありがちなアンチパターンプレゼン初心者にありがちなアンチパターン
プレゼン初心者にありがちなアンチパターン真俊 横田
 
開発モデルの作り方(守破離の破)
開発モデルの作り方(守破離の破)開発モデルの作り方(守破離の破)
開発モデルの作り方(守破離の破)Arata Fujimura
 
自動化について
自動化について自動化について
自動化についてYuma Iwasaki
 
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門Masahito Zembutsu
 
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門陽一 滝川
 
アジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティスアジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティスYasui Tsutomu
 

What's hot (20)

2012.03.24 Agile Samurai Dojo Gathering 講演資料
2012.03.24 Agile Samurai Dojo Gathering 講演資料2012.03.24 Agile Samurai Dojo Gathering 講演資料
2012.03.24 Agile Samurai Dojo Gathering 講演資料
 
これからの自分戦略 〜組織に埋もれない自分のウリコミ〜 #devlove2012b
これからの自分戦略 〜組織に埋もれない自分のウリコミ〜 #devlove2012bこれからの自分戦略 〜組織に埋もれない自分のウリコミ〜 #devlove2012b
これからの自分戦略 〜組織に埋もれない自分のウリコミ〜 #devlove2012b
 
アジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティスアジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティス
 
「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮) 「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮)
 
はじめてのLean Canvas〜最初のアイディアを言語化してみよう #bpstudy
はじめてのLean Canvas〜最初のアイディアを言語化してみよう #bpstudyはじめてのLean Canvas〜最初のアイディアを言語化してみよう #bpstudy
はじめてのLean Canvas〜最初のアイディアを言語化してみよう #bpstudy
 
ジョイ・インク 役職も部署もない全員主役のマネジメント
ジョイ・インク 役職も部署もない全員主役のマネジメントジョイ・インク 役職も部署もない全員主役のマネジメント
ジョイ・インク 役職も部署もない全員主役のマネジメント
 
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
CodeGrid2周年記念パーティ_ライトニングトーク_アジャイル開発
 
ゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみたゲーム開発出身者がチームラボで働いてみた
ゲーム開発出身者がチームラボで働いてみた
 
Rxtstudy第12回パネルディスカッション「組織に応じたRedmineの運用法 」
Rxtstudy第12回パネルディスカッション「組織に応じたRedmineの運用法 」Rxtstudy第12回パネルディスカッション「組織に応じたRedmineの運用法 」
Rxtstudy第12回パネルディスカッション「組織に応じたRedmineの運用法 」
 
リーンアジャイルで開発を加速しよう
リーンアジャイルで開発を加速しようリーンアジャイルで開発を加速しよう
リーンアジャイルで開発を加速しよう
 
はじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル - Agile in a nutshellはじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル - Agile in a nutshell
 
スクラムナイト#1 デイリースクラムやってます?
スクラムナイト#1 デイリースクラムやってます?スクラムナイト#1 デイリースクラムやってます?
スクラムナイト#1 デイリースクラムやってます?
 
Agile UX NYC 2012 Redux in Tokyo (#AgileUXNYC_ja)
Agile UX NYC 2012 Redux in Tokyo (#AgileUXNYC_ja)Agile UX NYC 2012 Redux in Tokyo (#AgileUXNYC_ja)
Agile UX NYC 2012 Redux in Tokyo (#AgileUXNYC_ja)
 
20120316 アジャイルジャパン東京サテライト
20120316 アジャイルジャパン東京サテライト20120316 アジャイルジャパン東京サテライト
20120316 アジャイルジャパン東京サテライト
 
プレゼン初心者にありがちなアンチパターン
プレゼン初心者にありがちなアンチパターンプレゼン初心者にありがちなアンチパターン
プレゼン初心者にありがちなアンチパターン
 
開発モデルの作り方(守破離の破)
開発モデルの作り方(守破離の破)開発モデルの作り方(守破離の破)
開発モデルの作り方(守破離の破)
 
自動化について
自動化について自動化について
自動化について
 
IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門
 
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
 
アジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティスアジャイルとスクラムとは 原則、価値、プラクティス
アジャイルとスクラムとは 原則、価値、プラクティス
 

Similar to ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation

ドメイン『駆動』『開発』
ドメイン『駆動』『開発』ドメイン『駆動』『開発』
ドメイン『駆動』『開発』Hiroshi Maekawa
 
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)Yuuki Namikawa
 
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理You&I
 
Digital Business and Agile
Digital Business and AgileDigital Business and Agile
Digital Business and AgileKenji Hiranabe
 
開発現場から考える プロジェクトで活躍する 新入社員の育て方とは?
開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?
開発現場から考える プロジェクトで活躍する 新入社員の育て方とは?CASAREAL, Inc.
 
ウォーターフォールとアジャイルを考える #ita_ws
ウォーターフォールとアジャイルを考える #ita_wsウォーターフォールとアジャイルを考える #ita_ws
ウォーターフォールとアジャイルを考える #ita_wsYusuke Suzuki
 
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)Rakuten Group, Inc.
 
クラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCCクラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCCYusuke Suzuki
 
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016Yusuke Suzuki
 
Office 365 を使っただけなのに~あなたのテナントも狙われる~
Office 365 を使っただけなのに~あなたのテナントも狙われる~Office 365 を使っただけなのに~あなたのテナントも狙われる~
Office 365 を使っただけなのに~あなたのテナントも狙われる~祥子 松山
 
エンタープライズアジャイルと全体最適について ~アーキテクチャ設計とウォーターフォールの必要性~
エンタープライズアジャイルと全体最適について ~アーキテクチャ設計とウォーターフォールの必要性~エンタープライズアジャイルと全体最適について ~アーキテクチャ設計とウォーターフォールの必要性~
エンタープライズアジャイルと全体最適について ~アーキテクチャ設計とウォーターフォールの必要性~Yusuke Suzuki
 
リーンスタートアップ、アジャイル開発導入事例
リーンスタートアップ、アジャイル開発導入事例リーンスタートアップ、アジャイル開発導入事例
リーンスタートアップ、アジャイル開発導入事例Arata Fujimura
 
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~典子 松本
 
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜Masakazu Muraoka
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビューTakafumi ONAKA
 
Techcrunch hackathon 2013
Techcrunch hackathon 2013Techcrunch hackathon 2013
Techcrunch hackathon 2013Nao Tokui
 
格言にみるリーダーシップ
格言にみるリーダーシップ格言にみるリーダーシップ
格言にみるリーダーシップJun Inose
 
アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱Koichi ITO
 
マイクロソフトにおけるエバンジェリズム活動
マイクロソフトにおけるエバンジェリズム活動マイクロソフトにおけるエバンジェリズム活動
マイクロソフトにおけるエバンジェリズム活動Osamu Monoe
 

Similar to ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation (20)

ドメイン『駆動』『開発』
ドメイン『駆動』『開発』ドメイン『駆動』『開発』
ドメイン『駆動』『開発』
 
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
俺たちの自分戦略 - namikawa (DevLOVE Conference 2012)
 
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理
 
Digital Business and Agile
Digital Business and AgileDigital Business and Agile
Digital Business and Agile
 
開発現場から考える プロジェクトで活躍する 新入社員の育て方とは?
開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?開発現場から考えるプロジェクトで活躍する新入社員の育て方とは?
開発現場から考える プロジェクトで活躍する 新入社員の育て方とは?
 
ウォーターフォールとアジャイルを考える #ita_ws
ウォーターフォールとアジャイルを考える #ita_wsウォーターフォールとアジャイルを考える #ita_ws
ウォーターフォールとアジャイルを考える #ita_ws
 
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
 
クラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCCクラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCC
 
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
プロダクトオーナーは育成できるのか? - プロダクトオーナー祭り2016
 
Office 365 を使っただけなのに~あなたのテナントも狙われる~
Office 365 を使っただけなのに~あなたのテナントも狙われる~Office 365 を使っただけなのに~あなたのテナントも狙われる~
Office 365 を使っただけなのに~あなたのテナントも狙われる~
 
はじめてのアジャイル
はじめてのアジャイルはじめてのアジャイル
はじめてのアジャイル
 
エンタープライズアジャイルと全体最適について ~アーキテクチャ設計とウォーターフォールの必要性~
エンタープライズアジャイルと全体最適について ~アーキテクチャ設計とウォーターフォールの必要性~エンタープライズアジャイルと全体最適について ~アーキテクチャ設計とウォーターフォールの必要性~
エンタープライズアジャイルと全体最適について ~アーキテクチャ設計とウォーターフォールの必要性~
 
リーンスタートアップ、アジャイル開発導入事例
リーンスタートアップ、アジャイル開発導入事例リーンスタートアップ、アジャイル開発導入事例
リーンスタートアップ、アジャイル開発導入事例
 
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
LogicFlow 実践編~LogicFlowでいろいろつくってみた ~
 
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 
Techcrunch hackathon 2013
Techcrunch hackathon 2013Techcrunch 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...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 CamelRed Hat Tech Night 2018 - Apache Camel
Red Hat Tech Night 2018 - Apache CamelTadayoshi Sato
 
Camel on Cloud by Christina Lin
Camel on Cloud by Christina LinCamel on Cloud by Christina Lin
Camel on Cloud by Christina LinTadayoshi Sato
 
Red Hat の日本でできるグローバルな働き方
Red Hat の日本でできるグローバルな働き方Red Hat の日本でできるグローバルな働き方
Red Hat の日本でできるグローバルな働き方Tadayoshi Sato
 
JJBUG 2013 - SwitchYard
JJBUG 2013 - SwitchYardJJBUG 2013 - SwitchYard
JJBUG 2013 - SwitchYardTadayoshi Sato
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
"Problem Frame Patterns" 紹介
"Problem Frame Patterns" 紹介"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..."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" 紹介"Documenting Frameworks using Patterns" 紹介
"Documenting Frameworks using Patterns" 紹介Tadayoshi Sato
 
"Formalizing Architectural Connection" 紹介
"Formalizing Architectural Connection" 紹介"Formalizing Architectural Connection" 紹介
"Formalizing Architectural Connection" 紹介Tadayoshi Sato
 
"The Coming-of-Age of Software Architecture Research" 紹介
"The Coming-of-Age of Software Architecture Research" 紹介"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 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 CamelRed Hat Tech Night 2018 - Apache Camel
Red Hat Tech Night 2018 - Apache Camel
 
Camel on Cloud by Christina Lin
Camel on Cloud by Christina LinCamel on Cloud by Christina Lin
Camel on Cloud by Christina Lin
 
Red Hat の日本でできるグローバルな働き方
Red Hat の日本でできるグローバルな働き方Red Hat の日本でできるグローバルな働き方
Red Hat の日本でできるグローバルな働き方
 
JJBUG 2013 - SwitchYard
JJBUG 2013 - SwitchYardJJBUG 2013 - SwitchYard
JJBUG 2013 - SwitchYard
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
"Problem Frame Patterns" 紹介
"Problem Frame Patterns" 紹介"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..."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" 紹介"Documenting Frameworks using Patterns" 紹介
"Documenting Frameworks using Patterns" 紹介
 
"Formalizing Architectural Connection" 紹介
"Formalizing Architectural Connection" 紹介"Formalizing Architectural Connection" 紹介
"Formalizing Architectural Connection" 紹介
 
"The Coming-of-Age of Software Architecture Research" 紹介
"The Coming-of-Age of Software Architecture Research" 紹介"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))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 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜Naomi Yamasaki
 
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版Takayuki Nakayama
 
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~honeshabri
 
チームで開発するための環境を整える
チームで開発するための環境を整えるチームで開発するための環境を整える
チームで開発するための環境を整えるonozaty
 
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」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作り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の勉強会で発表されたものです。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の知る.pdfIGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG-Audio
 
00001_test_automation_portfolio_20240313
00001_test_automation_portfolio_2024031300001_test_automation_portfolio_20240313
00001_test_automation_portfolio_20240313ssuserf8ea02
 
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024Hideki Saito
 

Recently uploaded (12)

The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))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 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
 
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
 
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
 
チームで開発するための環境を整える
チームで開発するための環境を整えるチームで開発するための環境を整える
チームで開発するための環境を整える
 
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」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 Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
 
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
 
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
 
00001_test_automation_portfolio_20240313
00001_test_automation_portfolio_2024031300001_test_automation_portfolio_20240313
00001_test_automation_portfolio_20240313
 
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024
 

ビジネスロジック実装進化論 - An Evolution of Business Logic Implementation