2013/01/18 G*WorkshopGroovy&Grails eXchange2012 @London 報告!   http://skillsmatter.com/event/groovy-grails/groovy-grails-ex...
Who am I ?             NTTソフトウェア             Grails推進室             Grails Advocate             須藤 悠
About meGrailsを用いたファイルアップローダ作成http://www.ntts.co.jp/publish/column/tec/java_02/JGGUGサポートスタッフ(2012/11/23~)Grailsドキュメント和訳htt...
NoteずっとTrack2(Grails関連)にいました。Track1(Grails以外のG*)を期待してた人ごめんなさい。本資料の写真は以下の公開アルバムからの引用です。- 2012.12.13-14 GGX 2012 London    -...
Note本発表の資料はこちらhttp://bit.ly/GGX2012report各発表のスライド・ビデオへのリンク集のみhttp://bit.ly/GGX2012abst旅行記とGGX2013の紹介http://bit.ly/GGX2012t...
Day 12012/12/13Photo http://instagram.com/p/TK_QY_GwQL/
Groovy Keynote    - Guillaume Laforge       Photo from http://www.flickr.com/photos/y___u/8270793291/       Slide:       h...
Groovy KeynoteGroovy エコシステムの新しい仲間GVM: Groovy enVironment Managerhttp://gvmtool.net/複数バージョンの開発環境を管理する、RVMのG*版Groovy, Grails...
Groovy KeynoteGroovy 2.0 のトピック:- モジュール性の向上とcoreの小型化- 静的型チェックとCompileStatic- JDK 7対応開始(invoke dynamicとproject coin)  - indy...
Groovy KeynoteGroovy 2.0 については他にも…プログラミングGROOVY別冊: 第8章 Groovy 2.0の新機能http://bit.ly/8Groovy2Groovy2.0 の新機能 疾きこと CompileStat...
Groovy KeynoteCompileStatic のパフォーマンス 元スライドから引用
Groovy Keynote今後の Groovy のロードマップ 元スライドから引用
Groovy KeynoteGroovy 2.1:- invoke dynamicサポートを完全に- @DelegatesTo(DSLの静的型チェック)- Type checker extension(静的型チェックのカスタマイ  ズ)- Al...
Groovy KeynoteGroovy 3.0:- MOP2(新しいMeta-Object Protocol)Groovy 4.0:- Antlr 4 を使った新しい文法- JDK 8 ラムダ式
Grails For Hipsters        - Robert Fletcher        Photo from http://www.flickr.com/photos/skillsmatter/8284468042/      ...
Grails For HipstersGrails + Vert.x なアプリ Hipsteroid のデモhttps://github.com/robfletcher/hipsteroid複数ウインドウで作業するとそれぞれ同期されるアプリ  ...
Grails For HipstersHipsteroid アプリの構成要素- Grails 2.1.2- Vert.x- MongoDB- ImageMagick- CoffeeScript- LESS- Handlebars
Grails For Hipsters操作のミラーリングには UrlMappings とCoffeeScript(hipsteroid-router.coffee) を利用LESS+CoffeeScript は CodeKit を使って CSS...
Grails For HipstersHipster ってなんJARO?【名】 〈俗〉進んでいる人、流行に敏感な人◆1930年代から存  在した言葉だが、1950年代になりジャズファンを指す  言葉として使われるようになった。 ヒップスター...
Grails Platform Core            - Marc Palmer        Photo from http://www.flickr.com/photos/y___u/8271858922/        Slid...
Grails Platform CoreGrailsプラグインすてき!- 多くのユーザを惹きつける- そうしてより良いプラグインができていくGrailsはフレームワークで、プラットフォームではないが…- もっと便利な機能も内包してくれると嬉しい...
Grails Platform Coreナイスなプラグインの紹介- email-confirmation      admin UI あるよ- resources      mode UI つくりましょう(本体に統合済み)- fresh-sec...
Grails Platform CorePlatform-Core プラグイン作ったよ!http://grails.org/plugin/platform-core- Configuration API- Security API- UI Ex...
Grails Platform Corecompile ":platform-core:1.0.RC4“で導入可能- 4つのAPI- 35(以上)のタグリブ- 20(以上)の動的メソッドとプロパティ- 2つのArtefact、1つのBean群、...
Grails Platform Core-   Configuration API        プラグイン名つきのConfig名前空間、Configのマージ        Configのバリデーションとデフォルト値設定-   Security...
Grails Platform Core時間切れになっちゃったけどほんとにすげーんだぜ!> grails update-header コマンドも用意してあるよみなさんのプラグインもmigrateしてくれると嬉しいなチートシート用意してあるよht...
Using Spring In Grails       - Burt Beckwith       Photo from http://www.flickr.com/photos/y___u/8270792917/       Slide: ...
Using Spring In GrailsTest や Resources で Service を利用する際の- 参照・設定する例- Transactional にする例トランザクション処理に関わるヘルパメソッドSpring SpEL を使っ...
Using Spring In GrailsBeanのスコープBeanのinit()やdestroy()やafterPropertiesSet()BeanポストプロセッサBeanエイリアスSpring MVC の機能の使い方
Using Spring In Grailsオライリーの Programming Grails を執筆Early Release したよhttp://shop.oreilly.com/product/0636920024750.do
Theming & UIs With         Grails Platform UI             - Marc Palmer            Photo from http://www.flickr.com/photos...
Grails Platform UIGrailsでの rapid development のためにout of the box でイケてる画面を用意できる機構が必要themetrust.com や themeforest.net を見てみてWo...
Grails Platform UIPlatform-UI プラグインhttp://grails.org/plugin/platform-uiPlatform-Core 環境において- UIセットの変更- テーマの変更が可能になるようにしたもの...
Grails Platform UIruntime ":platform-ui:1.0.RC3“runtime ":bootstrap-theme:1.0.RC3“runtime ":bootstrap-ui:1.0.RC4“で導入可能- 55...
Grails Platform UIUIセットはGSPテンプレート+Resourcesで実現テーマはSiteMesh+GSPテンプレート+Resources2つのタグリブで階層的に記述する- <theme:layoutZone>- <theme...
Grails Platform UIGrails.org のサイトを例に、GSPでzoneを組み立てる例 元スライドから引用      元スライドから引用
Grails Platform UIUIセットやテーマをつくるのはGrailsコマンドで> grails create-ui-set> grails fork-ui-set> grails create-theme> grails fork-t...
Grails Platform UIチートシート用意してあるよhttp://bit.ly/platform-ui-cheatデモとしてShowcaseアプリ用意してあるよhttps://github.com/grailsrocks/grails...
Grails Platform UIテーマチャレンジの作例:昔Geocitiesにあったサイト風 Photo from http://www.flickr.com/photos/y___u/8389051645/
Grails Platform UIテーマチャレンジの作例:昔Geocitiesにあったサイト風 Photo from http://www.flickr.com/photos/y___u/8389051833/
Leveraging Social Media                                                               In Grails       - Bobby Warner      ...
Leveraging Social MediaOAuthのライブラリ- Signpost           OAuth 1.0a (not 2.0)- SpringSecurity     OAuth 1.0a + 2.0- Scribe  ...
Leveraging Social MediaOAuthのAPIラッパーは- 特定のOAuthプロバイダ用ライブラリ- OAuthプロバイダ非依存のフレームワークにわかれるGrailsではoauthプラグイン(Scribeを利用)が最もシンプル...
Park Bench Discussion       Photo from http://www.flickr.com/photos/y___u/8271858798/       Video:       http://skillsmatt...
Day 22012/12/14Photo http://instagram.com/p/TLOKgImwWL/
Grails Keynote        - Graeme Rocher       Photo from http://www.flickr.com/photos/y___u/8303330738/       Video:       h...
Grails KeynoteGrails.org 新しくなったよ!Grails 2.0/2.1 の新機能の紹介-   インタラクティブモード、自動リロードの強化、dbconsole-   UIとエラーリポートの向上、HTML5 Scaffold...
Grails KeynoteGrailsのロードマップ Photo from http://www.flickr.com/photos/y___u/8390137070/
Grails KeynoteGrails 2.2 の新機能:- Groovy2.0対応    - TypeChecked, CombileStatic, invoke dynamic ...-   名前空間サポート    - Service や...
Grails KeynoteGrails 2.2 の新機能:- Forked Mode(Forked Tomcat Execution) - grails.project.fork.run=true で使えるようになる - JVMのパラメータを...
Grails KeynoteGrails 2.3:- Data Binding    - platform-core events の統合       http://github.com/grails/grails-core/wiki/Data...
Grails KeynoteGrails 2.3:- 非同期処理    - より高いレベルのプログラミングモデルを用意したい    - ダイナミックファインダーのコールバック?    - 将来的にはDetachedCriteria?-   Hi...
Grails KeynoteGrails 3.0:- Gradle対応- Grailsプラグインプラットフォーム- Grailsアプリケーションプロファイル- バイナリプラグインのランタイムリロード
Debugging Grails     Database Performance             - Tom Dunstan        Photo from http://www.flickr.com/photos/y___u/8...
Debugging Grails         Database PerformanceMiniprofiler プラグインの紹介http://grails.org/plugin/miniprofilerhttps://github.com/...
Debugging Grails         Database PerformanceProfiler プラグインはログを書き出してくれるが、Grails(GORM)でデータにアクセス可能な箇所が多すぎる- Controller- Serv...
Debugging Grails         Database PerformanceView で 10 SQL を発行し 754 ms かかる例でのデモクエリとかかる時間が一覧され見やすいクエリを Service にまとめたら 24 ms...
Contributing Back To Grails         - Bobby Warner         Photo from http://www.flickr.com/photos/y___u/8270792817/      ...
Contributing Back To GrailsGrails に貢献しよう!Mail, JIRA, Github, Hudson(Jenkins) が使われてるよgrails-core は cherry-pick は使わない方針全ての b...
Reactive Grails      Event Oriented Architecture     - Stephane Maldini        Photo from http://www.flickr.com/photos/y__...
Reactive GrailsGrailsでイベントバスを使う場合の選択肢- Spring-Events プラグイン- Routing プラグイン (Apache camel)- Falcone-Util プラグイン (メンテされてない)そこで...
Reactive Grailsevent(mailRegistration,user)とか書けばノンブロッキングなイベントをトリガできる.waitFor()を付ければブロッキングな呼び出しにすることもできる@grails.events.List...
Reactive GrailsEvents-SI プラグイン- Spring Integration をベースにDSLで記述- RabbitMQ を通してイベント送るのも楽ちん! 元スライドから引用        元スライドから引用
Reactive GrailsEvents-Push プラグイン- JavaScript でイベントを Listen したい- Atmosphere ベースGrails-Vertx プラグインも計画中!
Securing Grails Applications           - Burt Beckwith         Photo from http://www.flickr.com/photos/y___u/8270792917/  ...
Securing Grails ApplicationsGrailsでのセキュリティ対策 A to Z、必読!セキュリティリスクと対策を網羅してあるOWASP: Open Web Application Security Projectでもチー...
Securing Grails ApplicationsSQLインジェクション対策- わかってると思いますがプレースホルダ使いましょうXSS対策- grails.views.default.codec="html" 使いましょう- <% %> ...
Securing Grails Applicationssession fixation対策- grails.plugins.springsecurity.      useSessionFixationPrevention=trueinsec...
Securing Grails Applicationshdiv: http data integrity validatorhttp://hdiv.org/hdiv プラグインで Grails 2.3 からサポート予定!https://git...
Securing Grails ApplicationsCSRF対策- XSS対策をした上で、更新処理にはPOSTメソッドを使  う- リンクとフォームに生成トークンを使う- hdivを使うsecurity misconfiguration- ...
Securing Grails Applicationsfailure to restrict url access- grails.plugins.springsecurity.rejectIfNoRule=true を忘れると  大変!in...
Building An Ecommerce         Business With GR8   - Domingo Suarez Torres        Photo from http://www.flickr.com/photos/y...
Building An Ecommerce            Business With GR8メキシコのEコマースサービス clickOnero についてのお話規模:- 20万~30万 visits/day- 1500万 PV/day- ...
Building An Ecommerce            Business With GR8ver 1.0:Grails, MySQL, Tomcat, ehcache/terracotta, RabbitMQ4人でつくったJava →...
Building An Ecommerce            Business With GR8使ったGrailsプラグイン- Rabbitmq- Spring-Security- Rendering- Quartz- Feeds- Exp...
Building An Ecommerce            Business With GR8ver 2.0:single pageにしたchaplin/backbone.js を使って3コンポーネントに分割- API      :Gra...
Building An Ecommerce            Business With GR8Spock と Jasmine を使ってテストケースを作成Jenkins も使うようにしたPushstate でURL書き換えブックマークとかソ...
Thanks.Copyright(C) 2013 NTT Software Corporation All Rights Reserved.記載されているロゴ、システム名、製品名は各社および商標権者の登録商標あるいは商標です。
Upcoming SlideShare
Loading in …5
×

2013.01.18 G*Workshop GGX 2012 Report

2,375 views

Published on

Groovy&Grails eXchange 2012@ロンドン 報告!
2013/01/18開催のG*ワークショップ 2013新春SPでの発表資料です。

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,375
On SlideShare
0
From Embeds
0
Number of Embeds
413
Actions
Shares
0
Downloads
10
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

2013.01.18 G*Workshop GGX 2012 Report

  1. 1. 2013/01/18 G*WorkshopGroovy&Grails eXchange2012 @London 報告! http://skillsmatter.com/event/groovy-grails/groovy-grails-exchange-2012
  2. 2. Who am I ? NTTソフトウェア Grails推進室 Grails Advocate 須藤 悠
  3. 3. About meGrailsを用いたファイルアップローダ作成http://www.ntts.co.jp/publish/column/tec/java_02/JGGUGサポートスタッフ(2012/11/23~)Grailsドキュメント和訳https://github.com/nttsoft/grails-doc-src-ja/network/members
  4. 4. NoteずっとTrack2(Grails関連)にいました。Track1(Grails以外のG*)を期待してた人ごめんなさい。本資料の写真は以下の公開アルバムからの引用です。- 2012.12.13-14 GGX 2012 London - http://www.flickr.com/photos/y___u/sets/72157632240118573/- Skills Matters Groovy & Grails eXchange - http://www.flickr.com/photos/skillsmatter/sets/72157632277265626/本資料の写真以外の画像は元スライドからの引用です。
  5. 5. Note本発表の資料はこちらhttp://bit.ly/GGX2012report各発表のスライド・ビデオへのリンク集のみhttp://bit.ly/GGX2012abst旅行記とGGX2013の紹介http://bit.ly/GGX2012tour
  6. 6. Day 12012/12/13Photo http://instagram.com/p/TK_QY_GwQL/
  7. 7. Groovy Keynote - Guillaume Laforge Photo from http://www.flickr.com/photos/y___u/8270793291/ Slide: http://www.slideshare.net/glaforge/groovy-2-and-beyond https://speakerdeck.com/glaforge/groovy-2-dot-0-and-beyond Video: http://skillsmatter.com/podcast/groovy-grails/keynote-speech
  8. 8. Groovy KeynoteGroovy エコシステムの新しい仲間GVM: Groovy enVironment Managerhttp://gvmtool.net/複数バージョンの開発環境を管理する、RVMのG*版Groovy, Grails, Griffon, Gradle, Vert.x をサポートLinux, MacOS, Cygwin, Solaris, FreeBSD で使えるよ
  9. 9. Groovy KeynoteGroovy 2.0 のトピック:- モジュール性の向上とcoreの小型化- 静的型チェックとCompileStatic- JDK 7対応開始(invoke dynamicとproject coin) - indy対応はまだ完全ではない日本語ではGuillaumeの書いた記事の翻訳版がInfoQにhttp://www.infoq.com/jp/articles/new-groovy-20
  10. 10. Groovy KeynoteGroovy 2.0 については他にも…プログラミングGROOVY別冊: 第8章 Groovy 2.0の新機能http://bit.ly/8Groovy2Groovy2.0 の新機能 疾きこと CompileStatic のごとしhttp://www.slideshare.net/uehaj/new-feature-of-groovy20-gworkshop
  11. 11. Groovy KeynoteCompileStatic のパフォーマンス 元スライドから引用
  12. 12. Groovy Keynote今後の Groovy のロードマップ 元スライドから引用
  13. 13. Groovy KeynoteGroovy 2.1:- invoke dynamicサポートを完全に- @DelegatesTo(DSLの静的型チェック)- Type checker extension(静的型チェックのカスタマイ ズ)- Alias annotation(アノテーションでinterfaceのチェック)
  14. 14. Groovy KeynoteGroovy 3.0:- MOP2(新しいMeta-Object Protocol)Groovy 4.0:- Antlr 4 を使った新しい文法- JDK 8 ラムダ式
  15. 15. Grails For Hipsters - Robert Fletcher Photo from http://www.flickr.com/photos/skillsmatter/8284468042/ Slide: http://www.slideshare.net/rfletcher/grails-for-hipsters Video: http://skillsmatter.com/podcast/groovy-grails/grails-for-hipsters
  16. 16. Grails For HipstersGrails + Vert.x なアプリ Hipsteroid のデモhttps://github.com/robfletcher/hipsteroid複数ウインドウで作業するとそれぞれ同期されるアプリ 元スライドから引用 元スライドから引用
  17. 17. Grails For HipstersHipsteroid アプリの構成要素- Grails 2.1.2- Vert.x- MongoDB- ImageMagick- CoffeeScript- LESS- Handlebars
  18. 18. Grails For Hipsters操作のミラーリングには UrlMappings とCoffeeScript(hipsteroid-router.coffee) を利用LESS+CoffeeScript は CodeKit を使って CSS+JS にhttp://incident57.com/codekit/Handlebars プラグインいいよ!http://grails.org/plugin/handlebars
  19. 19. Grails For HipstersHipster ってなんJARO?【名】 〈俗〉進んでいる人、流行に敏感な人◆1930年代から存 在した言葉だが、1950年代になりジャズファンを指す 言葉として使われるようになった。 ヒップスター◆インディーロックなどを聴き、本や芸術 などについて語る人たち。独特な服装をしている。http://eow.alc.co.jp/search?q=Hipster
  20. 20. Grails Platform Core - Marc Palmer Photo from http://www.flickr.com/photos/y___u/8271858922/ Slide: https://speakerdeck.com/marcpalmer/using-grails-platform-core Video: http://skillsmatter.com/podcast/groovy-grails/using-grails-platform-core
  21. 21. Grails Platform CoreGrailsプラグインすてき!- 多くのユーザを惹きつける- そうしてより良いプラグインができていくGrailsはフレームワークで、プラットフォームではないが…- もっと便利な機能も内包してくれると嬉しい- Low maintenance を目指したい
  22. 22. Grails Platform Coreナイスなプラグインの紹介- email-confirmation admin UI あるよ- resources mode UI つくりましょう(本体に統合済み)- fresh-security SpringSecurityのラッパー、UIとmail confirmation- weceem イベント処理とUIの統合としてなかなか良い
  23. 23. Grails Platform CorePlatform-Core プラグイン作ったよ!http://grails.org/plugin/platform-core- Configuration API- Security API- UI Extensions- Navigation API- Events APIをまとめたもの
  24. 24. Grails Platform Corecompile ":platform-core:1.0.RC4“で導入可能- 4つのAPI- 35(以上)のタグリブ- 20(以上)の動的メソッドとプロパティ- 2つのArtefact、1つのBean群、1つのGrailsコマンドなどを内包している※Artefact についてはここ: http://grails.org/Developer+-+Artefact+API
  25. 25. Grails Platform Core- Configuration API プラグイン名つきのConfig名前空間、Configのマージ Configのバリデーションとデフォルト値設定- Security API 基本的なセキュリティ機能の抽象化- UI Extensions タグとヘルパプロパティとファンクションのセット- Navigation API ナビゲーションのためのArtefactとDSL、それにタグリブ- Events API 任意のイベントの実装を接続できる標準的なイベントバス アプリ内でのメッセージングのための軽量デフォルトプロバイダ
  26. 26. Grails Platform Core時間切れになっちゃったけどほんとにすげーんだぜ!> grails update-header コマンドも用意してあるよみなさんのプラグインもmigrateしてくれると嬉しいなチートシート用意してあるよhttp://bit.ly/platform-core-cheatSPOKEnPHOTO をローンチしたよ(※iOSアプリ)http://www.spoketechnologies.com/spokenphoto/
  27. 27. Using Spring In Grails - Burt Beckwith Photo from http://www.flickr.com/photos/y___u/8270792917/ Slide: http://www.slideshare.net/burtbeckwith/under-the-hood-using-spring-in-grails- 15633030 Video: http://skillsmatter.com/podcast/groovy-grails/under-the-hood-using-spring-in-grails
  28. 28. Using Spring In GrailsTest や Resources で Service を利用する際の- 参照・設定する例- Transactional にする例トランザクション処理に関わるヘルパメソッドSpring SpEL を使った複雑な依存性の設定
  29. 29. Using Spring In GrailsBeanのスコープBeanのinit()やdestroy()やafterPropertiesSet()BeanポストプロセッサBeanエイリアスSpring MVC の機能の使い方
  30. 30. Using Spring In Grailsオライリーの Programming Grails を執筆Early Release したよhttp://shop.oreilly.com/product/0636920024750.do
  31. 31. Theming & UIs With Grails Platform UI - Marc Palmer Photo from http://www.flickr.com/photos/y___u/8271858922/ Slide: https://speakerdeck.com/marcpalmer/themeing-and-uis-with-grails-platform-ui Video: http://skillsmatter.com/podcast/groovy-grails/theming-and-user-interfaces-with- grails-platform-ui
  32. 32. Grails Platform UIGrailsでの rapid development のためにout of the box でイケてる画面を用意できる機構が必要themetrust.com や themeforest.net を見てみてWordpress みたいなテーマ欲しいよねUIセットとテーマは分かれているべきテーマは複数のUIセットをまとめたものと考える
  33. 33. Grails Platform UIPlatform-UI プラグインhttp://grails.org/plugin/platform-uiPlatform-Core 環境において- UIセットの変更- テーマの変更が可能になるようにしたものBootstrap-Theme / Bootstrap-UI プラグインを利用Resources プラグインと連携する
  34. 34. Grails Platform UIruntime ":platform-ui:1.0.RC3“runtime ":bootstrap-theme:1.0.RC3“runtime ":bootstrap-ui:1.0.RC4“で導入可能- 55(以上)のタグリブ- 2つのBean- 4つのGrailsコマンドを内包している
  35. 35. Grails Platform UIUIセットはGSPテンプレート+Resourcesで実現テーマはSiteMesh+GSPテンプレート+Resources2つのタグリブで階層的に記述する- <theme:layoutZone>- <theme:zone>テーマ設定は default/config/set at runtime が可能リクエストごとにテーマを変えることもできる
  36. 36. Grails Platform UIGrails.org のサイトを例に、GSPでzoneを組み立てる例 元スライドから引用 元スライドから引用
  37. 37. Grails Platform UIUIセットやテーマをつくるのはGrailsコマンドで> grails create-ui-set> grails fork-ui-set> grails create-theme> grails fork-theme
  38. 38. Grails Platform UIチートシート用意してあるよhttp://bit.ly/platform-ui-cheatデモとしてShowcaseアプリ用意してあるよhttps://github.com/grailsrocks/grails-platform-ui-showcasePlatform-UIのテーマチャレンジ開催してるよhttp://bit.ly/platform-ui-challenge
  39. 39. Grails Platform UIテーマチャレンジの作例:昔Geocitiesにあったサイト風 Photo from http://www.flickr.com/photos/y___u/8389051645/
  40. 40. Grails Platform UIテーマチャレンジの作例:昔Geocitiesにあったサイト風 Photo from http://www.flickr.com/photos/y___u/8389051833/
  41. 41. Leveraging Social Media In Grails - Bobby Warner Photo from http://www.flickr.com/photos/y___u/8270792817/ Slide: http://www.slideshare.net/burtbeckwith/under-the-hood-using-spring-in-grails- 15633030 Video: http://skillsmatter.com/podcast/groovy-grails/under-the-hood-using-spring-in-grails
  42. 42. Leveraging Social MediaOAuthのライブラリ- Signpost OAuth 1.0a (not 2.0)- SpringSecurity OAuth 1.0a + 2.0- Scribe OAuth 1.0a + 2.0 spring-security-oauth プラグインはこれを利用- Google OAuth 1.0a + 2.0 Grailsプラグインは無い
  43. 43. Leveraging Social MediaOAuthのAPIラッパーは- 特定のOAuthプロバイダ用ライブラリ- OAuthプロバイダ非依存のフレームワークにわかれるGrailsではoauthプラグイン(Scribeを利用)が最もシンプルでよくメンテナンスされてる2つ以上のOAuthネットワークを使うなら、spring-social-*プラグインがオススメ
  44. 44. Park Bench Discussion Photo from http://www.flickr.com/photos/y___u/8271858798/ Video: http://skillsmatter.com/podcast/groovy-grails/park-bench-discussion-3650
  45. 45. Day 22012/12/14Photo http://instagram.com/p/TLOKgImwWL/
  46. 46. Grails Keynote - Graeme Rocher Photo from http://www.flickr.com/photos/y___u/8303330738/ Video: http://skillsmatter.com/podcast/groovy-grails/grails-keynote
  47. 47. Grails KeynoteGrails.org 新しくなったよ!Grails 2.0/2.1 の新機能の紹介- インタラクティブモード、自動リロードの強化、dbconsole- UIとエラーリポートの向上、HTML5 Scaffolding、jQuery- バインド変数によるcontrollerアクション- 新しいAPI PageRenderer, LinkGeneration- Resoucesプラグイン統合を始めとした静的リソース関連- GORM/Hibernate関連、テスト関連- Mavenプラグイン 2.1、Cacheプラグインの統合 . . .
  48. 48. Grails KeynoteGrailsのロードマップ Photo from http://www.flickr.com/photos/y___u/8390137070/
  49. 49. Grails KeynoteGrails 2.2 の新機能:- Groovy2.0対応 - TypeChecked, CombileStatic, invoke dynamic ...- 名前空間サポート - Service や Domain Class の名前空間がプラグイン名を使って 衝突しないようになるよ - UrlMappings や g:link でプラグイン名を指定できる- Criteria における sqlProjection の機能追加
  50. 50. Grails KeynoteGrails 2.2 の新機能:- Forked Mode(Forked Tomcat Execution) - grails.project.fork.run=true で使えるようになる - JVMのパラメータをカスタマイズできる - あとは普通に run-app - 停止のための grails stop-app コマンド追加
  51. 51. Grails KeynoteGrails 2.3:- Data Binding - platform-core events の統合 http://github.com/grails/grails-core/wiki/Data-Binding- REST Improvements - PUT/POST/DELETE/GET/PATCH/HEAD . . . etc - REST scaffolding- REST client / GORM for REST - Rest-Client-Builder プラグインの統合 http://grails.org/plugin/rest-client-builder
  52. 52. Grails KeynoteGrails 2.3:- 非同期処理 - より高いレベルのプログラミングモデルを用意したい - ダイナミックファインダーのコールバック? - 将来的にはDetachedCriteria?- Hibernate 4 化 / Hibernate設定の充実- Encoding / Escaping の向上
  53. 53. Grails KeynoteGrails 3.0:- Gradle対応- Grailsプラグインプラットフォーム- Grailsアプリケーションプロファイル- バイナリプラグインのランタイムリロード
  54. 54. Debugging Grails Database Performance - Tom Dunstan Photo from http://www.flickr.com/photos/y___u/8302275931/ Slide: http://www.slideshare.net/energizedwork/debugging-grails-database-performance Video: http://skillsmatter.com/podcast/groovy-grails/debugging-grails-database- performance
  55. 55. Debugging Grails Database PerformanceMiniprofiler プラグインの紹介http://grails.org/plugin/miniprofilerhttps://github.com/tomdcc/grails-miniprofiler 元スライドから引用
  56. 56. Debugging Grails Database PerformanceProfiler プラグインはログを書き出してくれるが、Grails(GORM)でデータにアクセス可能な箇所が多すぎる- Controller- Service- View- TagLib . . . etc最終的にフェッチにどれだけかかったのか分かりづらい場合も
  57. 57. Debugging Grails Database PerformanceView で 10 SQL を発行し 754 ms かかる例でのデモクエリとかかる時間が一覧され見やすいクエリを Service にまとめたら 24 ms に短縮された<miniprofiler:javascript /> タグを挿入すれば使える表示するプロファイル結果はAjaxで受け取っているIntelliJ では、コマンドキー押しながらスワイプで文字のサイズ変えられるよ
  58. 58. Contributing Back To Grails - Bobby Warner Photo from http://www.flickr.com/photos/y___u/8270792817/ Slide: https://github.com/bobbywarner/ggx2012/blob/master/ggx-contributing-back-to- grails.pdf?raw=true Video: http://skillsmatter.com/podcast/groovy-grails/contributing-back-to-grails
  59. 59. Contributing Back To GrailsGrails に貢献しよう!Mail, JIRA, Github, Hudson(Jenkins) が使われてるよgrails-core は cherry-pick は使わない方針全ての branch は定期的に master に merge される5件の簡単な修正を Live Pull-Requesting で実践!
  60. 60. Reactive Grails Event Oriented Architecture - Stephane Maldini Photo from http://www.flickr.com/photos/y___u/8303328584/ Slide: http://www.slideshare.net/StphaneMaldini/eventsggx Video: http://skillsmatter.com/podcast/groovy-grails/reactive-grails-event-oriented- architecture-made-easy
  61. 61. Reactive GrailsGrailsでイベントバスを使う場合の選択肢- Spring-Events プラグイン- Routing プラグイン (Apache camel)- Falcone-Util プラグイン (メンテされてない)そこで Platform-Core プラグインですよ!
  62. 62. Reactive Grailsevent(mailRegistration,user)とか書けばノンブロッキングなイベントをトリガできる.waitFor()を付ければブロッキングな呼び出しにすることもできる@grails.events.Listenerを使ってイベントを受けるメソッドを定義
  63. 63. Reactive GrailsEvents-SI プラグイン- Spring Integration をベースにDSLで記述- RabbitMQ を通してイベント送るのも楽ちん! 元スライドから引用 元スライドから引用
  64. 64. Reactive GrailsEvents-Push プラグイン- JavaScript でイベントを Listen したい- Atmosphere ベースGrails-Vertx プラグインも計画中!
  65. 65. Securing Grails Applications - Burt Beckwith Photo from http://www.flickr.com/photos/y___u/8270792917/ Slide: http://www.slideshare.net/burtbeckwith/securing-grails-applications Video: http://skillsmatter.com/podcast/groovy-grails/securing-grails-applications
  66. 66. Securing Grails ApplicationsGrailsでのセキュリティ対策 A to Z、必読!セキュリティリスクと対策を網羅してあるOWASP: Open Web Application Security Projectでもチートシート公開したよ!(まだ中身ないけど)https://www.owasp.org/index.php/Grails_Secure_Code_Review_Cheat_SheetDont trust the users!
  67. 67. Securing Grails ApplicationsSQLインジェクション対策- わかってると思いますがプレースホルダ使いましょうXSS対策- grails.views.default.codec="html" 使いましょう- <% %> 使うときは気をつけて- <%=person.value%> みたいな使い方はしないように
  68. 68. Securing Grails Applicationssession fixation対策- grails.plugins.springsecurity. useSessionFixationPrevention=trueinsecure direct object reference対策- .get(id) は id を知られても問題ないオブジェクトに限る こと- ACLの@PreAuthorizeを使っても良い- hdiv プラグインもあるよ
  69. 69. Securing Grails Applicationshdiv: http data integrity validatorhttp://hdiv.org/hdiv プラグインで Grails 2.3 からサポート予定!https://github.com/burtbeckwith/grails-hdiv/http://repo.grails.org/grails/plugins-releases/org/hdiv/
  70. 70. Securing Grails ApplicationsCSRF対策- XSS対策をした上で、更新処理にはPOSTメソッドを使 う- リンクとフォームに生成トークンを使う- hdivを使うsecurity misconfiguration- 不要なものは消すこと- デフォルトパスワードは危険 . . . etc
  71. 71. Securing Grails Applicationsfailure to restrict url access- grails.plugins.springsecurity.rejectIfNoRule=true を忘れると 大変!insufficient transport layer protection- grails.plugins.springsecurity. auth.forceHttps=trueunvalidated redirecs and forwards- ?nextPage=/hoge みたいなGETパラメータがあるとき =http://othersite.com/ みたいなことをやりやすい
  72. 72. Building An Ecommerce Business With GR8 - Domingo Suarez Torres Photo from http://www.flickr.com/photos/y___u/8302273751/ Video: http://skillsmatter.com/podcast/groovy-grails/building-an-ecommerce-business- with-gr8-technologies-in-latin-america
  73. 73. Building An Ecommerce Business With GR8メキシコのEコマースサービス clickOnero についてのお話規模:- 20万~30万 visits/day- 1500万 PV/day- 8万 concurrent user参考: とらのあなが1200万PV/day(2011年の記事)http://www.itmedia.co.jp/news/articles/1109/07/news070.html
  74. 74. Building An Ecommerce Business With GR8ver 1.0:Grails, MySQL, Tomcat, ehcache/terracotta, RabbitMQ4人でつくったJava → Grails への転向、Grailsの簡潔さに感動!テストのカバレッジ低かった、CIも無しコントローラにたくさんのコードがあったりGORMのクエリがイケてなかったり
  75. 75. Building An Ecommerce Business With GR8使ったGrailsプラグイン- Rabbitmq- Spring-Security- Rendering- Quartz- Feeds- Export . . . EtcJavaMelodyのダッシュボードでいろいろ見れて嬉しかったJDBCに入ってきたクエリとかLogstalgia でログを可視化した
  76. 76. Building An Ecommerce Business With GR8ver 2.0:single pageにしたchaplin/backbone.js を使って3コンポーネントに分割- API :Grails, Tomcat(JSONだけしゃべる、GSP無し)- Admin :Grails, Tomcat- Hipstore:静的HTML, chaplin, Apache httpd, CoffeeScript, pushstate, require.js, handlebars, jQ uery, underscore, bootstrap, jake, . . .etc
  77. 77. Building An Ecommerce Business With GR8Spock と Jasmine を使ってテストケースを作成Jenkins も使うようにしたPushstate でURL書き換えブックマークとかソーシャルメディアにも対応可能ですげー便利Googleのクローラが変なパラメータ付きでやってくる!Zombie.js でサイトを巡回し、生成されたページを静的コンテンツとして利用WebサーバもDBサーバも負荷は減ったしリンクのシェアはできるようになったしいいことずくめ
  78. 78. Thanks.Copyright(C) 2013 NTT Software Corporation All Rights Reserved.記載されているロゴ、システム名、製品名は各社および商標権者の登録商標あるいは商標です。

×