Submit Search
Upload
Grailsでドメイン駆動設計を実践する時の勘所
•
6 likes
•
8,740 views
Takuma Watabiki
Follow
Spring Day 2016 のスライドです。
Read less
Read more
Software
Report
Share
Report
Share
1 of 68
Download now
Download to read offline
Recommended
Map kit light
Map kit light
CocoaHeads France
Reactive Programming Patterns with RxSwift
Reactive Programming Patterns with RxSwift
Florent Pillet
Js interpreter interpreted
Js interpreter interpreted
Martha Schumann
Swift Sequences & Collections
Swift Sequences & Collections
CocoaHeads France
Talk KVO with rac by Philippe Converset
Talk KVO with rac by Philippe Converset
CocoaHeads France
Introduction to reactive programming & ReactiveCocoa
Introduction to reactive programming & ReactiveCocoa
Florent Pillet
Advanced functional programing in Swift
Advanced functional programing in Swift
Vincent Pradeilles
FunctionalJS - George Shevtsov
FunctionalJS - George Shevtsov
Georgiy Shevtsov
Recommended
Map kit light
Map kit light
CocoaHeads France
Reactive Programming Patterns with RxSwift
Reactive Programming Patterns with RxSwift
Florent Pillet
Js interpreter interpreted
Js interpreter interpreted
Martha Schumann
Swift Sequences & Collections
Swift Sequences & Collections
CocoaHeads France
Talk KVO with rac by Philippe Converset
Talk KVO with rac by Philippe Converset
CocoaHeads France
Introduction to reactive programming & ReactiveCocoa
Introduction to reactive programming & ReactiveCocoa
Florent Pillet
Advanced functional programing in Swift
Advanced functional programing in Swift
Vincent Pradeilles
FunctionalJS - George Shevtsov
FunctionalJS - George Shevtsov
Georgiy Shevtsov
Functional Reactive Programming - RxSwift
Functional Reactive Programming - RxSwift
Rodrigo Leite
Swift & ReactiveX – Asynchronous Event-Based Funsies with RxSwift
Swift & ReactiveX – Asynchronous Event-Based Funsies with RxSwift
Aaron Douglas
IoT Best practices
IoT Best practices
CocoaHeads France
Clojure functions 4
Clojure functions 4
Jackson dos Santos Olveira
Groovy and Grails talk
Groovy and Grails talk
desistartups
Building multi lingual and empatic bots - Sander van den Hoven - Codemotion A...
Building multi lingual and empatic bots - Sander van den Hoven - Codemotion A...
Codemotion
PSGI REST API
PSGI REST API
Dovrtel Vaclav
React.js or why DOM finally makes sense
React.js or why DOM finally makes sense
Eldar Djafarov
Realm.io par Clement Sauvage
Realm.io par Clement Sauvage
CocoaHeads France
Node Boot Camp
Node Boot Camp
Troy Miles
第4回 g* ワークショップ はじめてみよう! Grailsプラグイン
第4回 g* ワークショップ はじめてみよう! Grailsプラグイン
Tsuyoshi Yamamoto
Textile
Textile
Vanessa Lošić
Real world scala
Real world scala
lunfu zhong
Promises, promises, and then observables
Promises, promises, and then observables
Stefan Charsley
Lecture 6: Client Side Programming 2
Lecture 6: Client Side Programming 2
Artificial Intelligence Institute at UofSC
All you need to know about Callbacks, Promises, Generators
All you need to know about Callbacks, Promises, Generators
Brainhub
Luis Atencio on RxJS
Luis Atencio on RxJS
Luis Atencio
Lecture 5: Client Side Programming 1
Lecture 5: Client Side Programming 1
Artificial Intelligence Institute at UofSC
Powershell function
Powershell function
LearningTech
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Yuichi Hasegawa
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
Rakuten Group, Inc.
More Related Content
What's hot
Functional Reactive Programming - RxSwift
Functional Reactive Programming - RxSwift
Rodrigo Leite
Swift & ReactiveX – Asynchronous Event-Based Funsies with RxSwift
Swift & ReactiveX – Asynchronous Event-Based Funsies with RxSwift
Aaron Douglas
IoT Best practices
IoT Best practices
CocoaHeads France
Clojure functions 4
Clojure functions 4
Jackson dos Santos Olveira
Groovy and Grails talk
Groovy and Grails talk
desistartups
Building multi lingual and empatic bots - Sander van den Hoven - Codemotion A...
Building multi lingual and empatic bots - Sander van den Hoven - Codemotion A...
Codemotion
PSGI REST API
PSGI REST API
Dovrtel Vaclav
React.js or why DOM finally makes sense
React.js or why DOM finally makes sense
Eldar Djafarov
Realm.io par Clement Sauvage
Realm.io par Clement Sauvage
CocoaHeads France
Node Boot Camp
Node Boot Camp
Troy Miles
第4回 g* ワークショップ はじめてみよう! Grailsプラグイン
第4回 g* ワークショップ はじめてみよう! Grailsプラグイン
Tsuyoshi Yamamoto
Textile
Textile
Vanessa Lošić
Real world scala
Real world scala
lunfu zhong
Promises, promises, and then observables
Promises, promises, and then observables
Stefan Charsley
Lecture 6: Client Side Programming 2
Lecture 6: Client Side Programming 2
Artificial Intelligence Institute at UofSC
All you need to know about Callbacks, Promises, Generators
All you need to know about Callbacks, Promises, Generators
Brainhub
Luis Atencio on RxJS
Luis Atencio on RxJS
Luis Atencio
Lecture 5: Client Side Programming 1
Lecture 5: Client Side Programming 1
Artificial Intelligence Institute at UofSC
Powershell function
Powershell function
LearningTech
What's hot
(19)
Functional Reactive Programming - RxSwift
Functional Reactive Programming - RxSwift
Swift & ReactiveX – Asynchronous Event-Based Funsies with RxSwift
Swift & ReactiveX – Asynchronous Event-Based Funsies with RxSwift
IoT Best practices
IoT Best practices
Clojure functions 4
Clojure functions 4
Groovy and Grails talk
Groovy and Grails talk
Building multi lingual and empatic bots - Sander van den Hoven - Codemotion A...
Building multi lingual and empatic bots - Sander van den Hoven - Codemotion A...
PSGI REST API
PSGI REST API
React.js or why DOM finally makes sense
React.js or why DOM finally makes sense
Realm.io par Clement Sauvage
Realm.io par Clement Sauvage
Node Boot Camp
Node Boot Camp
第4回 g* ワークショップ はじめてみよう! Grailsプラグイン
第4回 g* ワークショップ はじめてみよう! Grailsプラグイン
Textile
Textile
Real world scala
Real world scala
Promises, promises, and then observables
Promises, promises, and then observables
Lecture 6: Client Side Programming 2
Lecture 6: Client Side Programming 2
All you need to know about Callbacks, Promises, Generators
All you need to know about Callbacks, Promises, Generators
Luis Atencio on RxJS
Luis Atencio on RxJS
Lecture 5: Client Side Programming 1
Lecture 5: Client Side Programming 1
Powershell function
Powershell function
Viewers also liked
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Yuichi Hasegawa
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
Rakuten Group, Inc.
Spring bootで学ぶ初めてのwebアプリ開発
Spring bootで学ぶ初めてのwebアプリ開発
terahide
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
都元ダイスケ Miyamoto
Springを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしよう
土岐 孝平
Cloud Foundry x Wagby
Cloud Foundry x Wagby
Yoshinori Nie
Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来
Yuichi Hasegawa
アメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpring
Takuya Hattori
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Toshiaki Maki
Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門
Takuya Iwatsuka
Distributed Tracing Velocity2016
Distributed Tracing Velocity2016
Reshmi Krishna
Distributed tracing - get a grasp on your production
Distributed tracing - get a grasp on your production
nklmish
Spring CloudとZipkinを利用した分散トレーシング
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実
J-Stream Inc.
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
tty fky
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
masakazu matsubara
Javaアプリケーションの モダナイゼーションアプローチ
Javaアプリケーションの モダナイゼーションアプローチ
CData Software Japan
Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilation
Logico
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Hiroshi Ito
Viewers also liked
(20)
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
Application Re-Architecture Technology ~ StrutsからSpring MVCへ ~
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
Spring bootで学ぶ初めてのwebアプリ開発
Spring bootで学ぶ初めてのwebアプリ開発
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
Springを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしよう
Cloud Foundry x Wagby
Cloud Foundry x Wagby
Spring Day 2016 springの現在過去未来
Spring Day 2016 springの現在過去未来
アメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpring
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Spring 5に備えるリアクティブプログラミング入門
Spring 5に備えるリアクティブプログラミング入門
Distributed Tracing Velocity2016
Distributed Tracing Velocity2016
Distributed tracing - get a grasp on your production
Distributed tracing - get a grasp on your production
Spring CloudとZipkinを利用した分散トレーシング
Spring CloudとZipkinを利用した分散トレーシング
Internetトラフィックエンジニアリングの現実
Internetトラフィックエンジニアリングの現実
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
Business Process Modeling in Goldman Sachs @ JJUG CCC Fall 2017
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
Javaアプリケーションの モダナイゼーションアプローチ
Javaアプリケーションの モダナイゼーションアプローチ
Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilation
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
Similar to Grailsでドメイン駆動設計を実践する時の勘所
Symfony2 Building on Alpha / Beta technology
Symfony2 Building on Alpha / Beta technology
Daniel Knell
Adding Dependency Injection to Legacy Applications
Adding Dependency Injection to Legacy Applications
Sam Hennessy
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
Tsuyoshi Yamamoto
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Tsuyoshi Yamamoto
Singletons in PHP - Why they are bad and how you can eliminate them from your...
Singletons in PHP - Why they are bad and how you can eliminate them from your...
go_oh
Creating Gradle Plugins - Oredev
Creating Gradle Plugins - Oredev
Annyce Davis
How Kris Writes Symfony Apps
How Kris Writes Symfony Apps
Kris Wallsmith
PHP: GraphQL consistency through code generation
PHP: GraphQL consistency through code generation
Alexander Obukhov
How kris-writes-symfony-apps-london
How kris-writes-symfony-apps-london
Kris Wallsmith
Code generation for alternative languages
Code generation for alternative languages
Rafael Winterhalter
Refactoring using Codeception
Refactoring using Codeception
Jeroen van Dijk
G*なクラウド ~雲のかなたに~
G*なクラウド ~雲のかなたに~
Tsuyoshi Yamamoto
Unittests für Dummies
Unittests für Dummies
Lars Jankowfsky
ZF2 for the ZF1 Developer
ZF2 for the ZF1 Developer
Gary Hockin
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Paulo Ragonha
Михаил Крайнюк - Form API + Drupal 8: Form and AJAX
Михаил Крайнюк - Form API + Drupal 8: Form and AJAX
DrupalSib
Anatomy of a Gradle plugin
Anatomy of a Gradle plugin
Dmytro Zaitsev
Why is crud a bad idea - focus on real scenarios
Why is crud a bad idea - focus on real scenarios
Divante
Kotlin Developer Starter in Android projects
Kotlin Developer Starter in Android projects
Bartosz Kosarzycki
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016
STX Next
Similar to Grailsでドメイン駆動設計を実践する時の勘所
(20)
Symfony2 Building on Alpha / Beta technology
Symfony2 Building on Alpha / Beta technology
Adding Dependency Injection to Legacy Applications
Adding Dependency Injection to Legacy Applications
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
名古屋SGGAE/J勉強会 Grails、Gaelykでハンズオン
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Singletons in PHP - Why they are bad and how you can eliminate them from your...
Singletons in PHP - Why they are bad and how you can eliminate them from your...
Creating Gradle Plugins - Oredev
Creating Gradle Plugins - Oredev
How Kris Writes Symfony Apps
How Kris Writes Symfony Apps
PHP: GraphQL consistency through code generation
PHP: GraphQL consistency through code generation
How kris-writes-symfony-apps-london
How kris-writes-symfony-apps-london
Code generation for alternative languages
Code generation for alternative languages
Refactoring using Codeception
Refactoring using Codeception
G*なクラウド ~雲のかなたに~
G*なクラウド ~雲のかなたに~
Unittests für Dummies
Unittests für Dummies
ZF2 for the ZF1 Developer
ZF2 for the ZF1 Developer
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Михаил Крайнюк - Form API + Drupal 8: Form and AJAX
Михаил Крайнюк - Form API + Drupal 8: Form and AJAX
Anatomy of a Gradle plugin
Anatomy of a Gradle plugin
Why is crud a bad idea - focus on real scenarios
Why is crud a bad idea - focus on real scenarios
Kotlin Developer Starter in Android projects
Kotlin Developer Starter in Android projects
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016
More from Takuma Watabiki
「普通の設計」をするということ
「普通の設計」をするということ
Takuma Watabiki
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
Takuma Watabiki
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
Takuma Watabiki
JGGUG Community LT 2016
JGGUG Community LT 2016
Takuma Watabiki
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
Takuma Watabiki
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Takuma Watabiki
Gradleどうでしょう
Gradleどうでしょう
Takuma Watabiki
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
Takuma Watabiki
Spock's world
Spock's world
Takuma Watabiki
スーパー戦隊進化論
スーパー戦隊進化論
Takuma Watabiki
Gws in fukuoka
Gws in fukuoka
Takuma Watabiki
Devsumi2012 JGGUG LT
Devsumi2012 JGGUG LT
Takuma Watabiki
Spockを使おう!
Spockを使おう!
Takuma Watabiki
G*Magazineを読もう
G*Magazineを読もう
Takuma Watabiki
G*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIII
Takuma Watabiki
Groovyノススメ
Groovyノススメ
Takuma Watabiki
More from Takuma Watabiki
(16)
「普通の設計」をするということ
「普通の設計」をするということ
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
JGGUG Community LT 2016
JGGUG Community LT 2016
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Gradleどうでしょう
Gradleどうでしょう
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
Spock's world
Spock's world
スーパー戦隊進化論
スーパー戦隊進化論
Gws in fukuoka
Gws in fukuoka
Devsumi2012 JGGUG LT
Devsumi2012 JGGUG LT
Spockを使おう!
Spockを使おう!
G*Magazineを読もう
G*Magazineを読もう
G*におけるソフトウェアテスト・シーズンIII
G*におけるソフトウェアテスト・シーズンIII
Groovyノススメ
Groovyノススメ
Recently uploaded
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
Ortus Solutions, Corp
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
Hanief Utama
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
stazi3110
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
kzayra69
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
Philip Schwarz
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
Tier1 app
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
Dinusha Kumarasiri
EY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
Neo4j
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
Velvetech LLC
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
umasea
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
VICTOR MAESTRE RAMIREZ
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Stefano Stabellini
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
Christoph Pohl
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
Łukasz Chruściel
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
BrainSell Technologies
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
Christina Lin
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
OnePlan Solutions
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
qr0udbr0
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
Technogeeks
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
StefanoLambiase
Recently uploaded
(20)
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
EY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Grailsでドメイン駆動設計を実践する時の勘所
1.
2.
3.
4.
5.
6.
7.
8.
9.
$ grails create-app
helloworld $ cd helloworld $ grails create-domain-class hello $ vi ./grails-app/domain/helloworld/ Hello.groovy
10.
package helloworld class Hello
{ String message static constraints = { } }
11.
$ grails create-controller
hello $ vi ./grails-app/controllers/ helloworld/HelloController.groovy
12.
package helloworld class HelloController
{ static scaffold = Hello }
13.
$ grails run-app
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
grails { exploded =
true plugins { compile project(':core-domain-plugin') compile project(':sub-domain-plugin') } } includeFlat 'core-domain-plugin' includeFlat 'sub-domain-plugin'
42.
43.
44.
45.
46.
47.
48.
49.
50.
class IsbnUserType implements
UserType { @Override int[] sqlTypes() { return [StringType.INSTANCE.sqlType()] } @Override Class returnedClass() { return Isbn.class } }
51.
package com.example.domain class Isbn
{ private String isbnCode }
52.
class Book { String
title Isbn isbn BigDecimal standardUnitPrice static mapping = { isbn type: IsbnUserType } String toString() { title } }
53.
54.
dependencies { compile "org.springframework.boot:spring-boot-starter-logging" compile
"org.springframework.boot:spring-boot-autoconfigure" compile "org.grails:grails-core" compile "org.springframework.boot:spring-boot-starter-actuator" compile "org.springframework.boot:spring-boot-starter-tomcat" compile "org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1" : }
55.
package com.example.domain class Isbn
{ private String isbnCode }
56.
package com.example.domain import grails.validation.Validateable class
Book implements Validateable { Long id String title Isbn isbn BigDecimal standardUnitPrice Long version static constraints = { } }
57.
package com.example.infrastructure import com.example.domain.Book import
org.apache.ibatis.annotations.Mapper import org.apache.ibatis.annotations.Param @Mapper interface BookMapper { void register(@Param("book") Book book) List<Book> list() }
58.
<?xml version="1.0" encoding="UTF-8"
?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.example.infrastructure.BookMapper"> <resultMap id="product" type="com.example.domain.Book"> <id property="id" column="id"/> <result property=“isbn.isbnCode" column="isbn_code"/> <result property="title" column=“title"/> <result property="standardUnitPrice" column=“standard_unit_price”/> <result property="version" column="version"/> </resultMap> : </mapper>
59.
60.
61.
62.
package com.example class BookRepositoryService
{ List<Book> list() { Book.findAll() } : }
63.
package com.example.domain interface BookRepository
{ List<Book> list() Book get(Long id) }
64.
package com.example.infrastructure import com.example.domain.Book import
com.example.domain.BookRepository import org.springframework.stereotype.Repository @Repository class BookDatasource implements BookRepository { @Override List<Book> list() { Book.findAll() } : }
65.
66.
67.
Download now