SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
“jOOQってなんて読むの?”
から始める
SpringBootと
O/Rマッパーの世界
The “Garden” at Bizreach.inc, Shibuya, Tokyo
2016-02-08
@nabedge わたなべ
Who ?
● わたなべ
○ twitter: @nabedge
○ (株)ビズリーチ SREグループ エンジニア
○ O/Rマッパの使用経験
■ O/Rマッパ使うなど軟弱ゥ -> S2JDBC -> MyBatis ->
-> DBFlute -> QueryDSL...そしてjOOQを試し中
● 過去の講演資料など
○ http://www.slideshare.net/nabedge/presentations
今日の流れ
1. 参加者全員による自己紹介
a. お名前
b. 業種、職種 (例:会計処理パッケージソフト屋でJava書いてます)
c. 最近使っている RDBMSと、O/Rマッパーは? (例:OracleとMyBatis)
2. jOOQの概要
3. デモいろいろ
4. まとめ
jOOQ概要
jOOQってなんて読むの?
汎用言語とDSL
汎用言語
DSL
Domain Specific Language = ドメイン特化言語
エクセルマクロ
正規表現
SQL
Makefile
Java
C言語
HTML
つまりjOOQとは?
● SQLをJavaで書け
る”internal DSL”
(意訳: オレオレDSL)
を提供するJavaライブラリと
ツールのこと。
jOOQの開発元(の収入源)は?
DEMO
https://github.com/nabedge/jooq-demo2
まとめ
Java, SQL, jOOQ
● DSL = Domain Specific Language = ドメイン特化言語
● jOOQとは?
○ SQLをJavaで書ける”internal DSL” (意訳: オレオレDSL)
を提供するJava-APIライブラリとツール
● jOOQの効果は?
○ Java上でタイプセーフにSQLを書いて実行できる
Javaエンジニアにとっての生産性って、
タイプセーフのことですよね。
● CTRL+Spaceキーだけでなんとなく仕事が進められる。
● 書き間違えるとコンパイルエラーでわかる。
実行して初めて間違いがわかるより早い
● DB定義を変更するとコンパイルエラーでわかる。
テーブル定義の影響範囲がすぐわかるため
開発とテストをしやすくなる。
jOOQの使い方ざっくり(1)
1. テーブルを張った状態のDBを用意する
a. sql-maven-plugin あるいは Flyway が便利
2. jOOQ + maven or gradle or API直たたき で、
jOOQ-DSL的なJavaコードを自動生成する
3. 自動生成したコードをIDE上でソースコード扱い(コンパイル対象)にする
a. src/main/java 配下に出力するならそこをVCS管理にするかignoreするかは要
検討
b. target/generated-sources (デフォルト)配下に出力するならIDEの設定に少し
注意
jOOQの使い方ざっくり(2)
4. ビジネスロジック層(リポジトリ層)のJavaクラス内で、
自動生成したコードを使ってSQLを組んで実行
5. テーブル定義の変更の場合は1に戻ってやり直すだけ
jOOQでのCRUD
● 先ほどデモしたとおりです
● デモのコードは https://github.com/nabedge/jooq-demo2
● UpdatableRecordはRuby on RailsでいうActiveRecordに近いらしい
SpringBootとjOOQとトランザクション管理
● SpringBootにはjOOQのDslContextクラスのインスタンスを使うための設定が初め
から組み込まれている
● “@Transactional” をクラスまたはメソッドにつけるだけでトランザクションに包まれる
● @Transactionalの中であれば異なるO/Rマッパを使っても同じトランザクションで管
理される
○ 全てのO/RマッパのインスタンスがSpring配下で一元管理されたDataSourceを使っているのが前提
(次ページ参照)
どうやってjOOQに移行しようか?
● 他のO/Rマッパ(MyBatis, JdbcTemplate, etc)のDataSourceの
管理が、Springの管理下にあるかどうか
ヒント:TransactionAwareDataSourceProxy
● 正しくSpringを使えばO/Rマッパの複数併用は可能
○ 併用の例はサンプルコードみてね
● 併用しながら徐々にjOOQで書き直せばいい
疑り深いあなたのために
● 実際に組み立て&発行されるSQL文を
JDBCのレベルでトラップして確認するには? -> log4jdbcをどうぞ
● そんなことしなくてもjOOQならSQL文のログ出力機能が初めからあるけどね。
○ ただし “commit”, “rollback” の実行までをもログに吐く にはlog4jdbcしかなさそう。
● jOOQを使いつつ「手組み」の文字列をSQLに含めることも可能
○ https://www.jooq.org/doc/3.9/manual/sql-building/plain-sql/
● SQL文の組み立てだけをjOOQのgetSQL()でやって、他の手段でそれを実行するこ
とも可能。超疑り深い人用。
おしまい

Weitere ähnliche Inhalte

Was ist angesagt?

Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
Satoshi Kubo
 

Was ist angesagt? (20)

エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
TDD のこころ
TDD のこころTDD のこころ
TDD のこころ
 
私にとってのテスト
私にとってのテスト私にとってのテスト
私にとってのテスト
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話心理的安全性を 0から80ぐらいに上げた話
心理的安全性を 0から80ぐらいに上げた話
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
大企業アジャイルの勘所 #devlovex #devlovexd
大企業アジャイルの勘所 #devlovex #devlovexd大企業アジャイルの勘所 #devlovex #devlovexd
大企業アジャイルの勘所 #devlovex #devlovexd
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
 
RESTfulとは
RESTfulとはRESTfulとは
RESTfulとは
 
どこに何を書くのか?
どこに何を書くのか?どこに何を書くのか?
どこに何を書くのか?
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 

Andere mochten auch

Pragmatic extreme programming
Pragmatic extreme programmingPragmatic extreme programming
Pragmatic extreme programming
juvenxu
 
A 9 line shop powered by armeria
A 9 line shop powered by armeriaA 9 line shop powered by armeria
A 9 line shop powered by armeria
LINE Corporation
 
A 3 difficult challenges that line has overcome
A 3 difficult challenges that line has overcomeA 3 difficult challenges that line has overcome
A 3 difficult challenges that line has overcome
LINE Corporation
 

Andere mochten auch (20)

俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
Dynamic Inventory: no more host lists!
Dynamic Inventory: no more host lists!Dynamic Inventory: no more host lists!
Dynamic Inventory: no more host lists!
 
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
 
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
 
Parallel Selenium Test With Docker
Parallel Selenium Test With DockerParallel Selenium Test With Docker
Parallel Selenium Test With Docker
 
AliExpress’ Way to Microservices - microXchg 2017
AliExpress’ Way to Microservices  - microXchg 2017AliExpress’ Way to Microservices  - microXchg 2017
AliExpress’ Way to Microservices - microXchg 2017
 
Pragmatic extreme programming
Pragmatic extreme programmingPragmatic extreme programming
Pragmatic extreme programming
 
Verda Cloud Family
Verda Cloud FamilyVerda Cloud Family
Verda Cloud Family
 
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっているJJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
 
Central Dogma LINE's Git-backed highly-available service configuration reposi...
Central Dogma LINE's Git-backed highly-available service configuration reposi...Central Dogma LINE's Git-backed highly-available service configuration reposi...
Central Dogma LINE's Git-backed highly-available service configuration reposi...
 
A 9 line shop powered by armeria
A 9 line shop powered by armeriaA 9 line shop powered by armeria
A 9 line shop powered by armeria
 
A 3 difficult challenges that line has overcome
A 3 difficult challenges that line has overcomeA 3 difficult challenges that line has overcome
A 3 difficult challenges that line has overcome
 
LINE Login - new features and mechanism
LINE Login - new features and mechanismLINE Login - new features and mechanism
LINE Login - new features and mechanism
 
Creators Studio Trimming Tool
Creators Studio Trimming ToolCreators Studio Trimming Tool
Creators Studio Trimming Tool
 
Amazon Redshiftによるリアルタイム分析サービスの構築
Amazon Redshiftによるリアルタイム分析サービスの構築Amazon Redshiftによるリアルタイム分析サービスの構築
Amazon Redshiftによるリアルタイム分析サービスの構築
 
Data Processing behind LINE Game Platform
Data Processing behind LINE Game PlatformData Processing behind LINE Game Platform
Data Processing behind LINE Game Platform
 
Zookeeper In Action
Zookeeper In ActionZookeeper In Action
Zookeeper In Action
 
PIP in LINE iOS
PIP in LINE iOSPIP in LINE iOS
PIP in LINE iOS
 
Data analysis for security The log analysis platform Monolith and spam count...
Data analysis for security  The log analysis platform Monolith and spam count...Data analysis for security  The log analysis platform Monolith and spam count...
Data analysis for security The log analysis platform Monolith and spam count...
 

Ähnlich wie jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界

ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
Daiki Maekawa
 
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Yoshifumi Kawai
 
属人化したフロントエンドのJavaScriptを、 ‘新規機能開発を止めずに’改善するために行った取り組みについて。 及びその経過報告。
属人化したフロントエンドのJavaScriptを、‘新規機能開発を止めずに’改善するために行った取り組みについて。及びその経過報告。属人化したフロントエンドのJavaScriptを、‘新規機能開発を止めずに’改善するために行った取り組みについて。及びその経過報告。
属人化したフロントエンドのJavaScriptを、 ‘新規機能開発を止めずに’改善するために行った取り組みについて。 及びその経過報告。
Jun Suzuki
 

Ähnlich wie jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界 (20)

ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03ROS JAPAN Users Group Meetup 03
ROS JAPAN Users Group Meetup 03
 
プロダクトにおけるScala
プロダクトにおけるScalaプロダクトにおけるScala
プロダクトにおけるScala
 
React + FLUX + Redux + Redux Saga のお話
React + FLUX + Redux + Redux Saga のお話React + FLUX + Redux + Redux Saga のお話
React + FLUX + Redux + Redux Saga のお話
 
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
 
鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料
 
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
 
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
 
実践 Redux Saga -Practical Redux Saga-
実践 Redux Saga -Practical Redux Saga-実践 Redux Saga -Practical Redux Saga-
実践 Redux Saga -Practical Redux Saga-
 
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えようReact系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
 
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
 
OpenCVとSAT4Jを使ってナンプレに挑戦してみた
OpenCVとSAT4Jを使ってナンプレに挑戦してみたOpenCVとSAT4Jを使ってナンプレに挑戦してみた
OpenCVとSAT4Jを使ってナンプレに挑戦してみた
 
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編
 
PySpark Intro Part.2 with SQL Graph
PySpark Intro Part.2 with SQL GraphPySpark Intro Part.2 with SQL Graph
PySpark Intro Part.2 with SQL Graph
 
Non blocking and asynchronous
Non blocking and asynchronousNon blocking and asynchronous
Non blocking and asynchronous
 
PlaySQLAlchemyORM2017.key
PlaySQLAlchemyORM2017.keyPlaySQLAlchemyORM2017.key
PlaySQLAlchemyORM2017.key
 
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
 
Jtf13 ossジョブ管理システムによる運用自動化事例
Jtf13 ossジョブ管理システムによる運用自動化事例 Jtf13 ossジョブ管理システムによる運用自動化事例
Jtf13 ossジョブ管理システムによる運用自動化事例
 
属人化したフロントエンドのJavaScriptを、 ‘新規機能開発を止めずに’改善するために行った取り組みについて。 及びその経過報告。
属人化したフロントエンドのJavaScriptを、‘新規機能開発を止めずに’改善するために行った取り組みについて。及びその経過報告。属人化したフロントエンドのJavaScriptを、‘新規機能開発を止めずに’改善するために行った取り組みについて。及びその経過報告。
属人化したフロントエンドのJavaScriptを、 ‘新規機能開発を止めずに’改善するために行った取り組みについて。 及びその経過報告。
 
新・ReVIEWパーサについて
新・ReVIEWパーサについて新・ReVIEWパーサについて
新・ReVIEWパーサについて
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 

Mehr von Y Watanabe

20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
 
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークSeleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Y Watanabe
 
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
Y Watanabe
 
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
Y Watanabe
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
 

Mehr von Y Watanabe (18)

クラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーククラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーク
 
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
 
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
 
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
 
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
 
properties, yaml, and me
properties, yaml, and meproperties, yaml, and me
properties, yaml, and me
 
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
 
The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2
 
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
 
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
 
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
 
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
 
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークSeleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
 
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
 
Mixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷javaMixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷java
 
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
 
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer220130511 jjug ccc講演 さらばjsp JAXBとmixer2
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
 

jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界