SlideShare ist ein Scribd-Unternehmen logo
1 von 284
Downloaden Sie, um offline zu lesen
Application Architecture
for Enterprise
Win Store Apps Mar, 30, 2013
                 @atsukanrock

with DDD Pattern   Room metro Tokyo
@atsukanrock
http://d.hatena.ne.jp/atsukanrock/

Enterprise Application Architect
になりたい
                                DDD Lover
What customers
need is...
        顧客が求めるもの
Win8=
業務システム
  http://wp.techtarget.itmedia.co.jp/contents/?cid=12250
すなわち
Enterprise App
Why App Arch?
Team Development
みんなの力を
 ひとつに
はいはいワロスワロス


なるわけないw
はい、そうですね
メンバーが
思い思いに
開発すると
スパゲッティ
デスマ
防ぐために
あるのが
用語定義
  ※オレオレ定義
「コードをどういう
風に組むか」が
     ※オレオレ定義
狭義の
App Arch
     ※オレオレ定義
「どんなテクノロジー
を使うか」も含むのが
      ※オレオレ定義
広義の
App Arch
     ※オレオレ定義
Domain-Driven
Design
Enterprise App
の設計手法
狭義のApp Archも
  提案
Originally
Proposed by...
The essence
was...
Customerと
 一緒に
Domain Model
 を考える
はいはいワロスワロス


お客さんコードと
か分からんしw
はい、そうですね
でもDDDは
App Arch
だけでも
高評価
だから
パクろう!!
前提
アプリケーション
  の性質
中~大規模
Win8以外にも
アプリケーション
むしろメインは
デスクトップ
もしくはWeb
開発要件
柔軟性・変更容易性
Ease of
Maintenance
         保守性
どうやって実現
したら・・・
DDD本の副題


 Tackling Complexity in
 the Heart of software
  ソフトウェアの本質である複雑さに立ち向かう
DDD brings us ...
         DDDがもたらすもの
Design Principles
オブジェクト
指向設計の
 5大原則
S ingle Responsibility Principle
O pen Close Principle
L iskov Substitution Principle
I interface Segregation Principle
D ependency Inversion Principle
Highly
Cohesive   高凝集
Don’t Repeat Yourself
           同じコードを2度書くな
Keep
the cross-cutting code
abstracted
        横断的なコードは抽象化
御託はいい


やれ
全体像
ざっくり   http://microsoftnlayerapp.codeplex.com/
詳しく   http://microsoftnlayerapp.codeplex.com/
この辺と


http://microsoftnlayerapp.codeplex.com/
この辺と




http://microsoftnlayerapp.codeplex.com/
この辺の話を
します

   http://microsoftnlayerapp.codeplex.com/
ちょっと
その前に
Object Types
      オブジェクトの種類
Entity
http://microsoftnlayerapp.codeplex.com/
≒DBレコード
でも単なるデータの
 容れ物じゃない
例えば
BankAccountクラス
Microsoft.Samples.NLayerApp.Domain.MainBoundedContext.BankingModule.Aggregates.BankAccountAgg名前空間
                                                        http://microsoftnlayerapp.codeplex.com/
Deposit/Withdraw
    メソッド
Deposit/Withdraw
の履歴を記録
Balanceプロパティ
 が常に正しい
  状態を保つ
不正な呼び出し
に対しては例外
Value Object
ないけど




http://microsoftnlayerapp.codeplex.com/
プリミティブ
 じゃないけど
Entityでもない
Stringクラス
みたいな感じ
ハッシュコンテナ
のキーとして使える
基本immutable
だから
スレッドセーフ
例えば
  BankAccountNumber
        クラス
Microsoft.Samples.NLayerApp.Domain.MainBoundedContext.BankingModule.Aggregates.BankAccountAgg名前空間
                                                        http://microsoftnlayerapp.codeplex.com/
Domain Service
http://microsoftnlayerapp.codeplex.com/
例えば
BankTransferService
      クラス
   Microsoft.Samples.NLayerApp.Domain.MainBoundedContext.BankingModule.Services名前空間
                                          http://microsoftnlayerapp.codeplex.com/
PerformTransfer
    メソッド
2つのBankAccount
間でお金を移す
SRP原則のため、
  BankAccountには
置くべきでないロジック
GoFのデザインパターン
などをよく使うのはここ
Template Methodとか
 Strategy/Stateとか
      よく使う
他にも
Repository
http://microsoftnlayerapp.codeplex.com/
…2箇所?



        http://microsoftnlayerapp.codeplex.com/
Application
  Service
http://microsoftnlayerapp.codeplex.com/
Domain Service
と違う…?
                 http://microsoftnlayerapp.codeplex.com/
Specification
http://microsoftnlayerapp.codeplex.com/
Factory
ないけど




http://microsoftnlayerapp.codeplex.com/
こんな感じで
クラスを小さくして
スパゲッティ化
を防いでいく
スパゲッティ化
を防いでいく
あと
Aggregate
            集合
Highly Cohesive (※)
にするための考え方
               ※高凝集
“Entities” 名前空間に
  全部入ってるとか
ダメ、絶対
さて
Distributed
Interface
Layer
この辺の話

    http://microsoftnlayerapp.codeplex.com/
基本的にDBに
 繋げない
ざわ‥
基本的にDBに
 繋げない
ざわ‥
基本的にDBに
 繋げない
 ざわ‥
解決策
はい、そうですね
Webサービス
問題は
どのテクノロジを
  使うか
1. ASP.NET Web
   API (REST)
2. WCF (SOAP)
今時RESTっしょ
たしかにそう
流行りは
 REST
  http://www.infoq.com/jp/news/2011/06/Is-REST-Successful
たいてい
           RESTでOK
http://www.codeproject.com/Articles/341414/WCF-or-ASP-NET-Web-APIs-My-two-cents-on-the-subjec
WCFもなかなか
   イケてる
クライアント
自動生成
できるから
開発効率
 いいし
最近では
async/await
にも対応
async/await
にも対応
 ※自動生成クライアントのこと
Behaviorで
                   AOPしたり
http://pablocastilla.wordpress.com/2010/11/09/aop-and-ioc-in-wcf-4-0-with-enterprise-library-5-and-appfabric-part-1/
Unity (DIの方) と
組み合わせたり
          http://unitywcf.codeplex.com/
いろいろできる
それゆえに
JavaScriptから
  呼んだり
他システムから
 呼ばれたり
開かれた
サービスには
単に
WinRT用なら
悪くない
死んでない
めちゃくちゃ
難しいけど
 (・ω<)
Configuration
爆発するけど
   (・ω<)
補足: WinRTから使えるのは
   WCFのサブセット

        http://msdn.microsoft.com/library/hh556233.aspx
Presentation
Layer
この辺の話

    http://microsoftnlayerapp.codeplex.com/
Win Store App特有なのは
  Presentation Layerだけ
http://microsoftnlayerapp.codeplex.com/
フツーMVVM
でしょ
     http://microsoftnlayerapp.codeplex.com/
はい、そうですね
Presentation
Layerは    もしくはMVPVMで

MVVMで!
V: View = XAML
VM: View Model =
 今まで通り
  作るだけ
Framework使う?
MVVM Light
 Toolkit?
        http://mvvmlight.codeplex.com/
Prism 改め
   Kona?
     http://konaguidance.codeplex.com/
Caliburn.Micro?
          http://caliburnmicro.codeplex.com/
発展途上なので
何とも言えないが
ひとつ言えるとしたら
いま使ったらきっと
途中で
アップグレード
したくなるから
その辺を
計画しておくべき
その辺 (※) を
計画しておくべき
   ※アップグレードプランとか
さてM: Model
http://microsoftnlayerapp.codeplex.com/
全
部
M
    http://microsoftnlayerapp.codeplex.com/
DDD App Archは
MVVMから
 見たら
Mばっかり
MにはDomain Logicが
  詰まってる
まるで宝石箱
まるで宝石箱
  http://www.officiallyjd.com/archives/14054/201104024_othello_02/
Presentation Layer
 でも使いたい
わざわざ
Webサービス
呼びたくない
クライアントのメモリ上で
 ロジックを動かしたい
Presentation Layerに
コピペすれば?
http://www.flickr.com/photos/andrew_freese/2200774154
実現する
方法が
あるんだよ!!
あるんだよ!!
なっ、なんだってェー!!
1. PCL (Portable
 Class Library)
2. コード共有
2. コード共有
プロジェクト間でショートカット張るやつ
以上
( ´゚д゚`)エー
そうなんです
Windowsランタイム
コンポーネントとか
Windowsストア
クラスライブラリは
だめ
こ
こ
    http://microsoftnlayerapp.codeplex.com/
.NETで組むから
WinRT専用のは
   使えない
でも
おさらい   http://microsoftnlayerapp.codeplex.com/
http://microsoftnlayerapp.codeplex.com/
矢
印
が
出
て
な
い
    http://microsoftnlayerapp.codeplex.com/
どういうことか
どこにも
依存してない
 ということ
アセンブリを
分けておけば
他Layerの
 アセンブリを
参照しないので
Domain Layerは
Presentation Layer
からも使えそう!!
ここでひとつ
残念なお知らせ
実は・・・   http://microsoftnlayerapp.codeplex.com/
ここ!   http://microsoftnlayerapp.codeplex.com/
たいてい
依存する
例えば
Validation
属性付ける =
  依存
依存しちゃ…
ダメ?
いいんです
Cross-Cutting ... には
  依存して当然
というわけで
Cross-Cutting
Infrastructure
Layers
Cross-Cutting
Infrastructure
Layers 長すぎ
ロギング
例外処理
そういうやつのこと
はい、そうですね
Enterprise Library
             http://entlib.codeplex.com/
Microsoft謹製
 Cross-cutting
フレームワーク
ちょっと
敷居高いけど
使えるやつなんです
というわけで
試してみた
PCLから
 VAB: Validation
Application Block
    を使う
結果から言うと
無理でしたorz
今のところ
PCL版はない
次バージョンで
WinRT対応するかも
 という話はあるが
      http://entlib.codeplex.com/discussions/401661
PCL対応の
噂はない
待ってられない
俺がポート
してやる!!
( ー`дー´)
30分後…
(:.;゚;Д;゚;.:)無理
ビルドエラーの嵐
理由
EntLibの精神
Configuration over
Convention
        規約より設定 (造語)
Win Store Appには
標準のConfiguration
の仕組みがない
相容れない
Silverlightでも
状況は同じだが
Silverlight版の
   EntLibでは
XAMLファイルに
  Configurationを
保存する仕組みを用意
PCL対応するなら
そうなるだろうけど
.NETから使う時に
不便になってしまう
Configuration以外の
部分のみをPCL化すると
近いクラスなのに
別アセンブリに
 入れることに
EntLibのPCL対応
への道は険しい
同様の理由で
Domain Layerを
PCLで作るのは
やめたほうが
 良さ気
PCLで作るとしたら
プロジェクト用の
Cross-cuttingライブラリ
      ぐらいかと
したがって
Presentation Layerで
   Mを使うには
コード共有
 を推奨
そしたら
#ifが使えるし
まとめ
大事なこと
3つ言いました
WCF is NOT
dead!!WCFは死んでねぇ!!
依存関係を
慎重に排除して
Keep Domain Logic
Simple and Clean!!
      ドメインロジックは簡潔に!!
すると
Presentation Layer
   でも使える
EntLib is sleeping...
         EntLibはお休み中です…
We want EntLib6!!
           EntLib6に期待!!
そして最後に
ありがとうござ
 いました!!!
Any question?
          質疑応答

Weitere ähnliche Inhalte

Was ist angesagt?

ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring増田 亨
 
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話JustSystems Corporation
 
.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデートTomomitsuKusaba
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう増田 亨
 
Spring native について
Spring native についてSpring native について
Spring native についてTakamasa Mitsuji
 
Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだ
Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだScalaのコンパイル速度の話が聞きたいだろうし、するつもりだ
Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだyoshiaki iwanaga
 
半日でわかる コンテナー技術 (入門編)
半日でわかる コンテナー技術 (入門編)半日でわかる コンテナー技術 (入門編)
半日でわかる コンテナー技術 (入門編)Toru Makabe
 
Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...Shotaro Suzuki
 
20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発Mao Ohnishi
 
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Takeshi Hirosue
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しAkira Nagata
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascriptTakao Tetsuro
 
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり Rakuten Group, Inc.
 
α版 継続的にテスト可能な設計を考える
α版 継続的にテスト可能な設計を考えるα版 継続的にテスト可能な設計を考える
α版 継続的にテスト可能な設計を考えるAtsushi Nakamura
 
ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!Kazumi IWANAGA
 
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後Shingo Sasaki
 
SpringベースのCloud Native Application
SpringベースのCloud Native ApplicationSpringベースのCloud Native Application
SpringベースのCloud Native Application土岐 孝平
 
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却de:code 2017
 
メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)Tatsuya Ishikawa
 
中の下のエンジニアを脱出するための目標設定
中の下のエンジニアを脱出するための目標設定中の下のエンジニアを脱出するための目標設定
中の下のエンジニアを脱出するための目標設定空宙 小笠原
 

Was ist angesagt? (20)

ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Springドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
 
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
 
.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート.NET 6の期待の新機能とアップデート
.NET 6の期待の新機能とアップデート
 
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみようドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
 
Spring native について
Spring native についてSpring native について
Spring native について
 
Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだ
Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだScalaのコンパイル速度の話が聞きたいだろうし、するつもりだ
Scalaのコンパイル速度の話が聞きたいだろうし、するつもりだ
 
半日でわかる コンテナー技術 (入門編)
半日でわかる コンテナー技術 (入門編)半日でわかる コンテナー技術 (入門編)
半日でわかる コンテナー技術 (入門編)
 
Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...
 
20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発20151110 ドメイン駆動設計によるサービス開発
20151110 ドメイン駆動設計によるサービス開発
 
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascript
 
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
 
α版 継続的にテスト可能な設計を考える
α版 継続的にテスト可能な設計を考えるα版 継続的にテスト可能な設計を考える
α版 継続的にテスト可能な設計を考える
 
ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!
 
6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後6万行の TypeScript 移行とその後
6万行の TypeScript 移行とその後
 
SpringベースのCloud Native Application
SpringベースのCloud Native ApplicationSpringベースのCloud Native Application
SpringベースのCloud Native Application
 
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
 
メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)
 
中の下のエンジニアを脱出するための目標設定
中の下のエンジニアを脱出するための目標設定中の下のエンジニアを脱出するための目標設定
中の下のエンジニアを脱出するための目標設定
 

Andere mochten auch

グローバル化はなぜ日時処理問題を引き起こすのか
グローバル化はなぜ日時処理問題を引き起こすのかグローバル化はなぜ日時処理問題を引き起こすのか
グローバル化はなぜ日時処理問題を引き起こすのかAtsushi Kambara
 
Ms build 触ってみよう
Ms build 触ってみようMs build 触ってみよう
Ms build 触ってみようOda Shinsuke
 
Add Some DDD to Your ASP.NET MVC, OK?
Add Some DDD to Your ASP.NET MVC, OK?Add Some DDD to Your ASP.NET MVC, OK?
Add Some DDD to Your ASP.NET MVC, OK?Steven Smith
 
ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話
ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話
ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話chocolamint
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)Hironobu Suzuki
 
C++のtemplate特殊化的なことをC#でやった話
C++のtemplate特殊化的なことをC#でやった話C++のtemplate特殊化的なことをC#でやった話
C++のtemplate特殊化的なことをC#でやった話Atsushi Kambara
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターンSoudai Sone
 
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~A AOKI
 
結果を出すチームビルディング術
結果を出すチームビルディング術結果を出すチームビルディング術
結果を出すチームビルディング術Mao Ohnishi
 

Andere mochten auch (9)

グローバル化はなぜ日時処理問題を引き起こすのか
グローバル化はなぜ日時処理問題を引き起こすのかグローバル化はなぜ日時処理問題を引き起こすのか
グローバル化はなぜ日時処理問題を引き起こすのか
 
Ms build 触ってみよう
Ms build 触ってみようMs build 触ってみよう
Ms build 触ってみよう
 
Add Some DDD to Your ASP.NET MVC, OK?
Add Some DDD to Your ASP.NET MVC, OK?Add Some DDD to Your ASP.NET MVC, OK?
Add Some DDD to Your ASP.NET MVC, OK?
 
ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話
ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話
ちょっとしたオレオレDSLも抽象構文木っぽくしておくと後からの拡張に対応しやすいよねっていうちょっとしたお話
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
C++のtemplate特殊化的なことをC#でやった話
C++のtemplate特殊化的なことをC#でやった話C++のtemplate特殊化的なことをC#でやった話
C++のtemplate特殊化的なことをC#でやった話
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
 
結果を出すチームビルディング術
結果を出すチームビルディング術結果を出すチームビルディング術
結果を出すチームビルディング術
 

Ähnlich wie Application Architecture for Enterprise Win Store Apps with DDD Pattern

スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向Tsutomu Ogasawara
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発Akira Inoue
 
Ecsとlambdaのバッチ処理
Ecsとlambdaのバッチ処理Ecsとlambdaのバッチ処理
Ecsとlambdaのバッチ処理政雄 金森
 
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~Yoshitaka Seo
 
.NET の過去、現在、そして未来
.NET の過去、現在、そして未来.NET の過去、現在、そして未来
.NET の過去、現在、そして未来Akira Inoue
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideYusuke Tochigi
 
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後Akira Inoue
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~normalian
 
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AzareaCluster
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)Kimihiko Kitase
 
Chrome DevTools.next
Chrome DevTools.nextChrome DevTools.next
Chrome DevTools.nextyoshikawa_t
 
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発Tomoharu ASAMI
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説kumo2010
 
熊本クラウド語ろう会 - Azure開発入門
熊本クラウド語ろう会 -  Azure開発入門熊本クラウド語ろう会 -  Azure開発入門
熊本クラウド語ろう会 - Azure開発入門Daiyu Hatakeyama
 

Ähnlich wie Application Architecture for Enterprise Win Store Apps with DDD Pattern (20)

スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向スマートフォンアプリケーション開発の最新動向
スマートフォンアプリケーション開発の最新動向
 
Angularreflex20141210
Angularreflex20141210Angularreflex20141210
Angularreflex20141210
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
Ecsとlambdaのバッチ処理
Ecsとlambdaのバッチ処理Ecsとlambdaのバッチ処理
Ecsとlambdaのバッチ処理
 
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~
 
.NET の過去、現在、そして未来
.NET の過去、現在、そして未来.NET の過去、現在、そして未来
.NET の過去、現在、そして未来
 
Using Windows Azure
Using Windows AzureUsing Windows Azure
Using Windows Azure
 
LabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training SlideLabVIEW NXG Web Module Training Slide
LabVIEW NXG Web Module Training Slide
 
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)
 
Chrome DevTools.next
Chrome DevTools.nextChrome DevTools.next
Chrome DevTools.next
 
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説次期Office製品群の新しい開発モデルの解説
次期Office製品群の新しい開発モデルの解説
 
熊本クラウド語ろう会 - Azure開発入門
熊本クラウド語ろう会 -  Azure開発入門熊本クラウド語ろう会 -  Azure開発入門
熊本クラウド語ろう会 - Azure開発入門
 
ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
 ぼく(たち)のかんがえた最新のJS開発環境 #scripty04 ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
 

Kürzlich hochgeladen

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 

Kürzlich hochgeladen (7)

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 

Application Architecture for Enterprise Win Store Apps with DDD Pattern