Upload
tsuyoshi-yamamoto
View
648
Download
2
Embed Size (px)
Citation preview
@tyama
今年も懲りずに Grails & Groovy eXchange 2014 ロンドンに行ってきた。
じこしょうかい山本です。岐阜県からきました。 twitter: @tyama はてな id:mottsnite
ぐれかつ!!• 今週のGrails 意訳版 • grails.jp/news
• 8年くらい続けているGrailsリリース情報 • はてな id: mottsnite
概要• 場所
• The Skills Matter eXchange ロンドン • 時期
• 毎年12月上旬 • 期間
• 2日間
歴史
2006年に企画され、2007年に第1回カンファレンスを開催。当時ロンドンでJavaエンジニアに注目を集めたGrails/Groovy・アジャイル・DDDなどの内容中心に情報交換を行うカンファレンス。
今までの日本からの参加履歴• 2007
• 2人。内1人スピーカー参加。 • 2010
• 2人。 • 2011
• 4人。 • 2012
• 5人。 • 2013
• 4人。 • 2014
• 2人。内1人スピーカー参加。
Grails & Groovy eXchange 2014 今回の特徴。
大まかに分類すると以下の内容に分けられる。
Groovy
Grails
Event Driven Architecture
Micro Service
参加したセッションのみを紹介しています。
Day 1
セッション1日目
Keynote: What's up in the Groovy world?
• Groovyの今までと今後についてのお話。
• Groovy 2.3 • Java8対応。Traits。 • AST変換。NIO2対応など解説。 • JSON・マークアップテンプレート エンジンの高速化。
• ドキュメントデザイン • Groovy 2.4
• Android対応 • Groovy 2.5
• Groovy Macros (PR 470) • Groovy 3
• Antlr4 • もっとJava8
• Groovy/Javaの文法互換が素晴らしいと言い続けるために。 • MOP2
Guillaume LaForge
Keynote: What's up in the Groovy world?
Groovy 2.3
• Java8対応。 クロージャ vs ラムダ式
Guillaume LaForge
Keynote: What's up in the Groovy world?
Groovy 2.3
• Traits - Java8のインターフェイスデフォルト実装みたいなやつ
• ステートフル • 継承可能。 • 継承のコンフリクトはしないの?
• 後にきた継承が勝ち • ランタイム実装 as で可能2つ付けたいときは withTraits A,B
Guillaume LaForge
Keynote: What's up in the Groovy world?
Groovy 2.3
• Traits • 継承可能。 • 継承は後にきた継承が勝ち。
Guillaume LaForge
Keynote: What's up in the Groovy world?
Groovy 2.3
• Traits • ランタイム実装 as 2つ付けたいときは withTraits A,B
Guillaume LaForge
Keynote: What's up in the Groovy world?
Groovy 2.3 • AST変換。
• @TailRecursive - 再帰処理 • @Sortable - ソート • @Builder - 流れるようなインターフェース実装
• @BaseScript - ベーススクリプト
Guillaume LaForge
Keynote: What's up in the Groovy world?
Groovy 2.3 • NIO2対応。
• GDKにJDK7のNIO2をアレしたよ。
Guillaume LaForge
Keynote: What's up in the Groovy world?
Groovy 2.3 • JSON高速化。再実装したら超高速になった。
Guillaume LaForge
Keynote: What's up in the Groovy world?
Groovy 2.3 • JSON・パースモードの追加。
• INDEX_OVERLAY: 2MB以下に対して高速処理 • CHARACTER_SOURCE: 2MB以上に対して有効 • LAX: 定義ファイルなどに最適。コメントやシングルクォートなどをサポート
※前のJsonSlurperは JsonSlurperClassicにリネームされました。
Guillaume LaForge
Keynote: What's up in the Groovy world?
Groovy 2.3 • マークアップテンプレートエンジンの高速化。
• 静的コンパイルで高速レンダリング。 • サフィックスノーテーションで国際化 → _fr_FR.tpl • カスタムベーステンプレートクラス。 • Spring-Bootで承認済み。 • include機能。
Guillaume LaForge
Keynote: What's up in the Groovy world?
Groovy 2.3 • ドキュメントデザイン変更。 • サイトもcodehausから独自サイトに移動。
• http://groovy-lang.org
Guillaume LaForge
Groovy 2.4
(2015 初旬リリース予定)
Keynote: What's up in the Groovy world?
Groovy 2.4 • Android対応 • 実際にGr8confアプリをリリースしている。 • New Yorkタイムスが超注目。
Guillaume LaForge
NY Timeが採用。 求人もしている。
Keynote: What's up in the Groovy world?
Groovy 2.4 • @SelfType
Guillaume LaForge
Keynote: What's up in the Groovy world?
Groovy 2.4 • StreamingTemplateEngine
Guillaume LaForge
Groovy 2.5
(2015末リリース予定)
Keynote: What's up in the Groovy world?
Groovy 2.5 • Groovy Macros (PR 470)
• https://github.com/groovy/groovy-core/pull/470 • シンプルにAST変換を作成。 • AstBuilderよりもパワフルかつ制限を少なく。
Guillaume LaForge
Groovy 3.0
(2016以降のどこか)
Keynote: What's up in the Groovy world?
Groovy 3 • Antlr4
• 現在は2を使用している。もう3も4も出ているし。 • もっとJava8
• Groovy/Javaの文法互換が素晴らしいと言い続けるために。
• MOP2 • 2008年くらいから言ってるやつ。
Guillaume LaForge
–Guillaume LaForge
“Groovy Rocks the JVM since 2003”
セッションの合間はこんな感じ
Groovy AST Transformations And Type Checking Extensions
• コンパイラーでメタプログラミング。 • AST変換の解説とライブコーディング。
Jeff Brown
Grails3ではTraitをASTしている。
• GrailsでSPA (シングルページアプリケーション)開発の解説。 • フロントエンドはangularでREST APIを使ったSPA開発 • REST使えばサーバーサイドのテストもシンプル • UI側は Karma(テストランナー)とBDDのJasmineを使って、TravisCIでCI。
Feed Your Grails KarmaVladimír Oraný
Stateless authentication for microservices
• RESTfulアプローチでの認証の話。 • OAuth2の解説。 • JWT: JSON Web Tokenの解説。 • Spring Security RESTプラグインの中の人
• http://grails.org/plugin/spring-security-rest
Alvaro Sanchez-Mariscal
Developing API Platform in Groovy at Ratuken
• 楽天のAPIプラットフォームをGroovyで開発したお話。 • 一日のアクセスが 160,000,000という環境。 • 彼の部署ではGroovyを活用! • Groovyの青本もってます!と。
• 環境を解説。 • Spring MVC をGroovyで。 • Groovy, Spock, Gradle, Jenkins。 • Groovy + MongoDB。 • Groovy & Cloud Foundry。 • Groovy + Hadoop/Hive, Clustrix, splunk。 • Groovy + virgo (Spring dm Server)/ OSGi
Shuichi Suzuki
Groovy VFS
• Apache VFSのDSL実装「Groovy VFS」の話。 • リモートFTP, SFTP & HTTPをワンラインでオペレーションできる優れもの!
Schalk Cronjé
def vfs = new VFS()vfs { cp "http://from/a.txt",
"sftp://to/b.txt"}
Modular Monoliths with Grails 3 and Spring Boot
• MonolithのをGrails3でモジュラする話。哲学的に。Lari Hotari
Park Bench Discussion
Day 2
セッション2日目
Keynote: Grails 3.0 Preview
Grails3についてのお話がメイン!! • Grails 2.4のおさらい。 • Grails 2.4.5 • Grails 3!
• 他のカンファレンスよりも開発が進んでいるので完成度の高いデモが見られました。
Graeme Rocher
Keynote: Grails 3.0 Preview
• Grails 2.4のおさらい。 • Spring 4.0 • Java 8 対応 • Groovy 2.3 に更新 • @CompileStatic 対応 • アセットパイプライン • コードベースのモジュラー化 • HIbernate4対応 • 単独利用できる GORMとGSP
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails 2.4 • コードベースのモジュラー化 • Grails3に向けて大切なリファクタリングステップ。
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails 2.4 • これもGrails3に向けて先行対応。 • 単独利用可能なGORMとGSP。 • Spring-Bootでも使えます。
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails 2.4 • GORM for MongoDB 3.0 • Spring-Bootにも対応。 • これもGrails3に向けて先行対応。
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails 2.4.5 くるよ! • Grails 2.4.x の TODOリスト!
• Grails 2.4.5 リリース • Spring Security Core 2.0.GAリリース • 今後も引き続きメンテナンス • バグフィックス
Graeme Rocher
Grails3
Keynote: Grails 3.0 Preview
Grails3 •Gradleをビルドシステムに組込 •パッケージング・デプロイの抽象化 •Servletコンテナの外へ •アプリプロファイル: Netty,Servlet,Batch,Hadoopなど。 •run-app / 実行可能 jarファイル •Grailsの領域を拡大
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 •Spring Boot 上に構築。 •プラグインシステムとイベント •マルチプロジェクトビルド •マイクロサービス対応 •膨れた部分を取り除く •依存を減らす
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 - Gradle対応 •現在のビルドシステムは非推奨に。 •ビルドはGradleで行う。 •分離されたビルドプラグインの提供でGradle機能拡張の提供。
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 デモ!Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 デモ内容 •grails create-app •IntelliJ IDEAで、gradleプロジェクトとして開けます。 •もちろんインタラクティブコンソールあるよ。 •コマンド補完。オプションも補完。 •run-app で起動。 •package コマンド。でパッケージビルド。 •grails-app/init/Application.groovyをそのまま実行で起動。 •-noverifyを指定するとホットリロードもできる。 •create-functional-test はGebテストを生成するよ。 •JUnit実行でテストできるよ。
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 デモ内容 •grails package コマンド実行 •jar & warを生成。 •生成された war ファイルを実行! •Tomcatとかにwarを入れるのもOK
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 デモ内容 •build.gradle の中身解説 •Gradleプラグインが指定されている。 •spring-boot •war •asset-pipeline •grails-core •grails-gsp
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 デモ内容 •build.gradle の中身解説 •Grailsプラグインは dependenciesに指定。
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 - Spring Boot との関係 •組込サーバ •tomcatプラグインは無いですよ。 •実行可能 jar •WARパッケージング •スクリプティング / マイクロサービス
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 - 何故 Spring Boot ? •ファットJARと組込 •様々なランタイムに対応 •モニタリングとヘルスチェックの仕組み •Bootのオートコンフィグレーションの活用。
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 •そしてマイクロサービスのデモ! •こんなんが動くんです!
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 - マイクロサービス •grails create-app demo --profile=web-micro •ソースが2つ!?
•必要なコードはApplication.groovyに書く。
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 - マイクロサービス •インタラクティブモード •プロファイルが変わったから使えるコマンドも変わる。
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 - プロファイル •アプリケーションのプロファイルを指定することでさまざまなタイプのアプリケーション生成に対応。 •プロファイルはgithubリポジトリで管理されている。 •そこに使用可能なプロファイルが提供されている。
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 - プロファイル •リポジトリのprofile階層に使用可能なプロファイルが管理されている。 •そこに今後。 ratpackとか他のプロファイルも入る。 •プロファイルでは以下が定義されている。 •プロジェクトスケルトン •テンプレート •コマンド
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 - プロファイル - コマンド •yamlでタスクステップを定義。 •groovyでスクリプトを提供も可能。 •GroovyScriptCommandクラスとして実行される。 •コマンド補完などの内容も定義 •コマンド作成用に新たなAPIなども用意されている。 •コード生成用のrender, modelなど。
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 - プロファイル - 継承 •プロファイルは継承できます。 •プロファイルを実装するときは近いプロファイルを継承して作成できる。多重継承も可能。 •継承するので、必要追加分のみを定義すればよい。 •不要なスケルトン・コマンドは除外も可能。
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 - 無くなる物!!! Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 - フローが変わる! Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 - シンプル化された恩恵は?! •メンテナンス性の向上 •パフォーマンスの向上 •Springとのより良い統合 •依存が少なく •内部フォワードが無くなる
Graeme Rocher
Keynote: Grails 3.0 Preview
Grails3 - メタプログラミングの進化。 •Grails1 - Expando •Grails2 - AST •Grails3 - TraitsとAST
Graeme Rocher
–オレ氏
“これは期待できそうだ。”
セッションの合間はこんな感じ
Groovy and Android: a winning pair
• ニューヨークタイムスがGroovyを使うとか。 • 採用理由
• AndroidにはJava8がなくてラムダもない。 • Groovyは読みやすい。 • タイプセーフに対応してはStaticCompile対応したからOK • GroovyはJavaの先を行っている、そしてシームレスにJavaと連携、ブリッジが不要。
• Andoridスタジオ使ってね。便利。 • プロジェクト作成したらbuild.gradleにgroovyの依存を注入。
Guillaume LaForge
• リアルタイムな世界でのGrails • Grailsで、Springインテグレーションの話。 • コードを追って解説してくれました。わかりやすい!
Grails and the real-time worldIván López
Micro Service Architecture with Spring Boot and Groovy
• GVMの中の人。 • Spring BootとGroovyはトモダチ。
• TDDでspring-bootアプリをGroovyで構築するハンズオン • 受け入れテストはCucumbeで記述。 • UnitテストはSpockで記述。 • GroovyでSpring-bootの簡単なアプリを作成。
• 動画必見。
Marco Vermeulen
RESTful Grails 2
• Grails2でのRESTの話。 • バインドの深い部分の解説もあった。ハズ。 • コンパイルタイムに追加しているっぽい。
Jeff Brown
Forces on Groovy Architecture
この人の話はいつも難しい。 アーキテクチャて何? アーキテクチャ vs デザイン。ですか? アーキテクチャはフィロソフィー あんたの哲学は? • そんな感じの話から自信がマイクロサービスを活用している案件の事例を紹介。
David A. Dawson
Groovy, with style
• 最後のセッション。 • Guillaume氏がGroovy歴11+の経験値でお送りします。 • Groovyのスタイルガイド。
• イメージ写真でクイズを出しながら解説。 • Groovyコードをキレイに書こう!
Guillaume LaForge
最後に参加方法!
https://skillsmatter.com/conferences/6863-groovy-grails-exchange-2015
他の海外Gアスタなカンファレンス達。• 2015/1/10
• Grails Conf ニューデリー・インド • 2015/4/10-11
• Greach マドリッド・スペイン • 2015/6/2-4
• GR8confヨーロッパ コペンハーゲン・デンマーク, • 2015/7
• GR8conf US ミネアポリス・USA • 2015/6/11-12
• Gradle Summit 2015 サンタクララ・USA • 2015/9/14-17
• SpringOne 2GX 2015, ワシントン・USA • 2015/12/14-15
• Groovy Grails Exchange 2015 ロンドン・UK
Groovy & Grails eXchange 2014 動画はコチラから。
https://skillsmatter.com/conferences/1957-groovy-grails-exchange-2014
今週のGrails 2014-50 意訳版からもリンクがあります
http://grails.jp/news/2014-50.html