SlideShare a Scribd company logo
1 of 78
2013/01/18 G*Workshop

Groovy&Grails eXchange
2012 @London 報告!
   http://skillsmatter.com/event/groovy-grails/groovy-grails-exchange-2012
Who am I ?


             NTTソフトウェア
             Grails推進室
             Grails Advocate
             須藤 悠
About me
Grailsを用いたファイルアップローダ作成
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
Note
ずっとTrack2(Grails関連)にいました。
Track1(Grails以外のG*)を期待してた人ごめんなさい。
本資料の写真は以下の公開アルバムからの引用です。
- 2012.12.13-14 GGX 2012 London
    - http://www.flickr.com/photos/y___u/sets/72157632240118573/

-   Skills Matter's Groovy & Grails eXchange
    - http://www.flickr.com/photos/skillsmatter/sets/72157632277265626/

本資料の写真以外の画像は元スライドからの引用です。
Note
本発表の資料はこちら
http://bit.ly/GGX2012report
各発表のスライド・ビデオへのリンク集のみ
http://bit.ly/GGX2012abst
旅行記とGGX2013の紹介
http://bit.ly/GGX2012tour
Day 1
2012/12/13
Photo http://instagram.com/p/TK_QY_GwQL/
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
Groovy Keynote
Groovy エコシステムの新しい仲間
GVM: Groovy enVironment Manager
http://gvmtool.net/



複数バージョンの開発環境を管理する、RVMのG*版
Groovy, Grails, Griffon, Gradle, Vert.x をサポート
Linux, MacOS, Cygwin, Solaris, FreeBSD で使えるよ
Groovy Keynote
Groovy 2.0 のトピック:
- モジュール性の向上とcoreの小型化
- 静的型チェックとCompileStatic
- JDK 7対応開始(invoke dynamicとproject coin)
  - indy対応はまだ完全ではない


日本語ではGuillaumeの書いた記事の翻訳版がInfoQに
http://www.infoq.com/jp/articles/new-groovy-20
Groovy Keynote
Groovy 2.0 については他にも…

プログラミングGROOVY別冊: 第8章 Groovy 2.0の新機能
http://bit.ly/8Groovy2



Groovy2.0 の新機能 疾きこと CompileStatic のごとし
http://www.slideshare.net/uehaj/new-feature-of-groovy20-gworkshop
Groovy Keynote
CompileStatic のパフォーマンス




 元スライドから引用
Groovy Keynote
今後の Groovy のロードマップ




 元スライドから引用
Groovy Keynote
Groovy 2.1:
- invoke dynamicサポートを完全に
- @DelegatesTo(DSLの静的型チェック)
- Type checker extension(静的型チェックのカスタマイ
  ズ)
- Alias annotation(アノテーションでinterfaceのチェック)
Groovy Keynote
Groovy 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/




        Slide:
        http://www.slideshare.net/rfletcher/grails-for-hipsters



        Video:
        http://skillsmatter.com/podcast/groovy-grails/grails-for-hipsters
Grails For Hipsters
Grails + Vert.x なアプリ Hipsteroid のデモ
https://github.com/robfletcher/hipsteroid

複数ウインドウで作業するとそれぞれ同期されるアプリ
  元スライドから引用                                 元スライドから引用
Grails For Hipsters
Hipsteroid アプリの構成要素
- Grails 2.1.2
- Vert.x
- MongoDB
- ImageMagick
- CoffeeScript
- LESS
- Handlebars
Grails For Hipsters
操作のミラーリングには UrlMappings と
CoffeeScript(hipsteroid-router.coffee) を利用

LESS+CoffeeScript は CodeKit を使って CSS+JS に
http://incident57.com/codekit/



Handlebars プラグインいいよ!
http://grails.org/plugin/handlebars
Grails For Hipsters
Hipster ってなんJARO?

【名】
 〈俗〉進んでいる人、流行に敏感な人◆1930年代から存
  在した言葉だが、1950年代になりジャズファンを指す
  言葉として使われるようになった。
 ヒップスター◆インディーロックなどを聴き、本や芸術
  などについて語る人たち。独特な服装をしている。
http://eow.alc.co.jp/search?q=Hipster
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
Grails Platform Core
Grailsプラグインすてき!
- 多くのユーザを惹きつける
- そうしてより良いプラグインができていく


Grailsはフレームワークで、プラットフォームではないが
…
- もっと便利な機能も内包してくれると嬉しい
- Low maintenance を目指したい
Grails Platform Core
ナイスなプラグインの紹介
- email-confirmation
      admin UI あるよ
- resources
      mode UI つくりましょう(本体に統合済み)
- fresh-security
      SpringSecurityのラッパー、UIとmail confirmation
- weceem
      イベント処理とUIの統合としてなかなか良い
Grails Platform Core
Platform-Core プラグイン作ったよ!
http://grails.org/plugin/platform-core

- Configuration API
- Security API
- UI Extensions
- Navigation API
- Events API
をまとめたもの
Grails Platform Core
compile ":platform-core:1.0.RC4“
で導入可能
- 4つのAPI
- 35(以上)のタグリブ
- 20(以上)の動的メソッドとプロパティ
- 2つのArtefact、1つのBean群、1つのGrailsコマンド
などを内包している
※Artefact についてはここ: http://grails.org/Developer+-+Artefact+API
Grails Platform Core
-   Configuration API
        プラグイン名つきのConfig名前空間、Configのマージ
        Configのバリデーションとデフォルト値設定
-   Security API
        基本的なセキュリティ機能の抽象化
-   UI Extensions
        タグとヘルパプロパティとファンクションのセット
-   Navigation API
        ナビゲーションのためのArtefactとDSL、それにタグリブ
-   Events API
        任意のイベントの実装を接続できる標準的なイベントバス
        アプリ内でのメッセージングのための軽量デフォルトプロバイダ
Grails Platform Core
時間切れになっちゃったけどほんとにすげーんだぜ!
> grails update-header コマンドも用意してあるよ
みなさんのプラグインもmigrateしてくれると嬉しいな
チートシート用意してあるよ
http://bit.ly/platform-core-cheat



SPOKEnPHOTO をローンチしたよ(※iOSアプリ)
http://www.spoketechnologies.com/spokenphoto/
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
Using Spring In Grails
Test や Resources で Service を利用する際の
- 参照・設定する例
- Transactional にする例


トランザクション処理に関わるヘルパメソッド
Spring SpEL を使った複雑な依存性の設定
Using Spring In Grails
Beanのスコープ
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/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
Grails Platform UI
Grailsでの rapid development のために
out of the box でイケてる画面を用意できる機構が必要

themetrust.com や themeforest.net を見てみて
Wordpress みたいなテーマ欲しいよね

UIセットとテーマは分かれているべき
テーマは複数のUIセットをまとめたものと考える
Grails Platform UI
Platform-UI プラグイン
http://grails.org/plugin/platform-ui

Platform-Core 環境において
- UIセットの変更
- テーマの変更
が可能になるようにしたもの
Bootstrap-Theme / Bootstrap-UI プラグインを利用
Resources プラグインと連携する
Grails Platform UI
runtime ":platform-ui:1.0.RC3“
runtime ":bootstrap-theme:1.0.RC3“
runtime ":bootstrap-ui:1.0.RC4“
で導入可能
- 55(以上)のタグリブ
- 2つのBean
- 4つのGrailsコマンド
を内包している
Grails Platform UI
UIセットはGSPテンプレート+Resourcesで実現
テーマはSiteMesh+GSPテンプレート+Resources
2つのタグリブで階層的に記述する
- <theme:layoutZone>
- <theme:zone>


テーマ設定は default/config/set at runtime が可能
リクエストごとにテーマを変えることもできる
Grails Platform UI

Grails.org のサイトを例に、GSPでzoneを組み立てる例




 元スライドから引用      元スライドから引用
Grails Platform UI
UIセットやテーマをつくるのはGrailsコマンドで
> grails create-ui-set
> grails fork-ui-set

> grails create-theme
> grails fork-theme
Grails Platform UI
チートシート用意してあるよ
http://bit.ly/platform-ui-cheat



デモとしてShowcaseアプリ用意してあるよ
https://github.com/grailsrocks/grails-platform-ui-showcase



Platform-UIのテーマチャレンジ開催してるよ
http://bit.ly/platform-ui-challenge
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
       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
Leveraging Social Media
OAuthのライブラリ
- 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プラグインは無い
Leveraging Social Media
OAuthのAPIラッパーは
- 特定のOAuthプロバイダ用ライブラリ
- OAuthプロバイダ非依存のフレームワーク
にわかれる

Grailsではoauthプラグイン(Scribeを利用)が最もシンプル
でよくメンテナンスされてる
2つ以上のOAuthネットワークを使うなら、spring-social-*
プラグインがオススメ
Park Bench Discussion




       Photo from http://www.flickr.com/photos/y___u/8271858798/




       Video:
       http://skillsmatter.com/podcast/groovy-grails/park-bench-discussion-3650
Day 2
2012/12/14
Photo http://instagram.com/p/TLOKgImwWL/
Grails Keynote
        - Graeme Rocher



       Photo from http://www.flickr.com/photos/y___u/8303330738/




       Video:
       http://skillsmatter.com/podcast/groovy-grails/grails-keynote
Grails Keynote
Grails.org 新しくなったよ!
Grails 2.0/2.1 の新機能の紹介
-   インタラクティブモード、自動リロードの強化、dbconsole
-   UIとエラーリポートの向上、HTML5 Scaffolding、jQuery
-   バインド変数によるcontrollerアクション
-   新しいAPI PageRenderer, LinkGeneration
-   Resoucesプラグイン統合を始めとした静的リソース関連
-   GORM/Hibernate関連、テスト関連
-   Mavenプラグイン 2.1、Cacheプラグインの統合 . . .
Grails Keynote
Grailsのロードマップ
 Photo from http://www.flickr.com/photos/y___u/8390137070/
Grails Keynote
Grails 2.2 の新機能:
- Groovy2.0対応
    - TypeChecked, CombileStatic, invoke dynamic ...
-   名前空間サポート
    - Service や Domain Class の名前空間がプラグイン名を使って
      衝突しないようになるよ
    - UrlMappings や g:link でプラグイン名を指定できる
-   Criteria における sqlProjection の機能追加
Grails Keynote
Grails 2.2 の新機能:
- Forked Mode(Forked Tomcat Execution)
 - grails.project.fork.run=true で使えるようになる
 - JVMのパラメータをカスタマイズできる
 - あとは普通に run-app
 - 停止のための grails stop-app コマンド追加
Grails Keynote
Grails 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
Grails Keynote
Grails 2.3:
- 非同期処理
    - より高いレベルのプログラミングモデルを用意したい
    - ダイナミックファインダーのコールバック?
    - 将来的にはDetachedCriteria?
-   Hibernate 4 化 / Hibernate設定の充実
-   Encoding / Escaping の向上
Grails Keynote
Grails 3.0:
- Gradle対応
- Grailsプラグインプラットフォーム
- Grailsアプリケーションプロファイル
- バイナリプラグインのランタイムリロード
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
Debugging Grails
         Database Performance
Miniprofiler プラグインの紹介
http://grails.org/plugin/miniprofiler
https://github.com/tomdcc/grails-miniprofiler

                            元スライドから引用
Debugging Grails
         Database Performance
Profiler プラグインはログを書き出してくれるが、
Grails(GORM)でデータにアクセス可能な箇所が多すぎる
- Controller
- Service
- View
- TagLib
      . . . etc
最終的にフェッチにどれだけかかったのか分かりづらい
場合も
Debugging Grails
         Database Performance
View で 10 SQL を発行し 754 ms かかる例でのデモ
クエリとかかる時間が一覧され見やすい
クエリを Service にまとめたら 24 ms に短縮された

<miniprofiler:javascript /> タグを挿入すれば使える
表示するプロファイル結果はAjaxで受け取っている

IntelliJ では、コマンドキー押しながらスワイプで文字の
サイズ変えられるよ
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
Contributing Back To Grails
Grails に貢献しよう!
Mail, JIRA, Github, Hudson(Jenkins) が使われてるよ

grails-core は cherry-pick は使わない方針
全ての branch は定期的に master に merge される

5件の簡単な修正を Live Pull-Requesting で実践!
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
Reactive Grails
Grailsでイベントバスを使う場合の選択肢
- Spring-Events プラグイン
- Routing プラグイン (Apache camel)
- Falcone-Util プラグイン (メンテされてない)


そこで Platform-Core プラグインですよ!
Reactive Grails
event('mailRegistration',user)
とか書けばノンブロッキングなイベントをトリガできる

.waitFor()
を付ければブロッキングな呼び出しにすることもできる

@grails.events.Listener
を使ってイベントを受けるメソッドを定義
Reactive Grails
Events-SI プラグイン
- Spring Integration をベースにDSLで記述
- RabbitMQ を通してイベント送るのも楽ちん!




 元スライドから引用        元スライドから引用
Reactive Grails
Events-Push プラグイン
- JavaScript でイベントを Listen したい
- Atmosphere ベース


Grails-Vertx プラグインも計画中!
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
Securing Grails Applications
Grailsでのセキュリティ対策 A to Z、必読!
セキュリティリスクと対策を網羅してある

OWASP: Open Web Application Security Project
でもチートシート公開したよ!(まだ中身ないけど)
https://www.owasp.org/index.php/Grails_Secure_Code_Review_Cheat_Sheet



Don't trust the users!
Securing Grails Applications
SQLインジェクション対策
- わかってると思いますがプレースホルダ使いましょう


XSS対策
- grails.views.default.codec="html" 使いましょう
- <% %> 使うときは気をつけて
- <%=person.value%> みたいな使い方はしないように
Securing Grails Applications
session fixation対策
- grails.plugins.springsecurity.
      useSessionFixationPrevention=true

insecure direct object reference対策
- .get(id) は id を知られても問題ないオブジェクトに限る
  こと
- ACLの@PreAuthorizeを使っても良い
- hdiv プラグインもあるよ
Securing Grails Applications
hdiv: http data integrity validator
http://hdiv.org/



hdiv プラグインで Grails 2.3 からサポート予定!
https://github.com/burtbeckwith/grails-hdiv/
http://repo.grails.org/grails/plugins-releases/org/hdiv/
Securing Grails Applications
CSRF対策
- XSS対策をした上で、更新処理にはPOSTメソッドを使
  う
- リンクとフォームに生成トークンを使う
- hdivを使う


security misconfiguration
- 不要なものは消すこと
- デフォルトパスワードは危険 . . . etc
Securing Grails Applications
failure to restrict url access
- grails.plugins.springsecurity.rejectIfNoRule=true を忘れると
  大変!

insufficient transport layer protection
- grails.plugins.springsecurity. auth.forceHttps=true

unvalidated redirecs and forwards
- ?nextPage=/hoge みたいなGETパラメータがあるとき
  =http://othersite.com/ みたいなことをやりやすい
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
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
Building An Ecommerce
            Business With GR8
ver 1.0:
Grails, MySQL, Tomcat, ehcache/terracotta, RabbitMQ
4人でつくった
Java → Grails への転向、Grailsの簡潔さに感動!

テストのカバレッジ低かった、CIも無し
コントローラにたくさんのコードがあったり
GORMのクエリがイケてなかったり
Building An Ecommerce
            Business With GR8
使ったGrailsプラグイン
- Rabbitmq
- Spring-Security
- Rendering
- Quartz
- Feeds
- Export        . . . Etc
JavaMelodyのダッシュボードでいろいろ見れて嬉しかった
JDBCに入ってきたクエリとか
Logstalgia でログを可視化した
Building An Ecommerce
            Business With GR8
ver 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
Building An Ecommerce
            Business With GR8
Spock と Jasmine を使ってテストケースを作成
Jenkins も使うようにした

Pushstate でURL書き換え
ブックマークとかソーシャルメディアにも対応可能ですげー
便利
Googleのクローラが変なパラメータ付きでやってくる!
Zombie.js でサイトを巡回し、生成されたページを静的コン
テンツとして利用
WebサーバもDBサーバも負荷は減ったしリンクのシェアはで
きるようになったしいいことずくめ
Thanks.
Copyright(C) 2013 NTT Software Corporation All Rights Reserved.



記載されているロゴ、システム名、製品名は各社
および商標権者の登録商標あるいは商標です。

More Related Content

What's hot

新人Git/Github研修公開用スライド(その1)
新人Git/Github研修公開用スライド(その1)新人Git/Github研修公開用スライド(その1)
新人Git/Github研修公開用スライド(その1)pupupopo88
 
Before lunch オプションを使って Flutterでstaging/release環境を切り替える
Before lunch オプションを使って Flutterでstaging/release環境を切り替えるBefore lunch オプションを使って Flutterでstaging/release環境を切り替える
Before lunch オプションを使って Flutterでstaging/release環境を切り替えるcch-robo
 
Android Dev Tools Knowledge
Android Dev Tools KnowledgeAndroid Dev Tools Knowledge
Android Dev Tools KnowledgeShinobu Okano
 
オープンソースのドローン用フライトコントローラ「Dronecode」の概要( #OSC15tk)
オープンソースのドローン用フライトコントローラ「Dronecode」の概要( #OSC15tk)オープンソースのドローン用フライトコントローラ「Dronecode」の概要( #OSC15tk)
オープンソースのドローン用フライトコントローラ「Dronecode」の概要( #OSC15tk)博宣 今村
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しようUnityTechnologiesJapan002
 
PySide/QtWebkitで楽々 slideshare Hack
PySide/QtWebkitで楽々 slideshare HackPySide/QtWebkitで楽々 slideshare Hack
PySide/QtWebkitで楽々 slideshare HackKazushige TAKEUCHI
 
DartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみようDartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみようcch-robo
 

What's hot (8)

新人Git/Github研修公開用スライド(その1)
新人Git/Github研修公開用スライド(その1)新人Git/Github研修公開用スライド(その1)
新人Git/Github研修公開用スライド(その1)
 
Before lunch オプションを使って Flutterでstaging/release環境を切り替える
Before lunch オプションを使って Flutterでstaging/release環境を切り替えるBefore lunch オプションを使って Flutterでstaging/release環境を切り替える
Before lunch オプションを使って Flutterでstaging/release環境を切り替える
 
Android Dev Tools Knowledge
Android Dev Tools KnowledgeAndroid Dev Tools Knowledge
Android Dev Tools Knowledge
 
オープンソースのドローン用フライトコントローラ「Dronecode」の概要( #OSC15tk)
オープンソースのドローン用フライトコントローラ「Dronecode」の概要( #OSC15tk)オープンソースのドローン用フライトコントローラ「Dronecode」の概要( #OSC15tk)
オープンソースのドローン用フライトコントローラ「Dronecode」の概要( #OSC15tk)
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
 
PySide/QtWebkitで楽々 slideshare Hack
PySide/QtWebkitで楽々 slideshare HackPySide/QtWebkitで楽々 slideshare Hack
PySide/QtWebkitで楽々 slideshare Hack
 
DartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみようDartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみよう
 
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hacktoberfest 概要、Node-REDプロジェクト貢献手順Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
 

Similar to 2013.01.18 G*Workshop GGX 2012 Report

Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力ThinReports
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイKazuhiro Hara
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化Issei Hiraoka
 
Microsoft Graph API Library for Go
Microsoft Graph API Library for GoMicrosoft Graph API Library for Go
Microsoft Graph API Library for Goyaegashi
 
Goで作って配布するAzureコマンドラインユーティリティ
Goで作って配布するAzureコマンドラインユーティリティGoで作って配布するAzureコマンドラインユーティリティ
Goで作って配布するAzureコマンドラインユーティリティyaegashi
 
WindowsでGitを使う際のベストプラクティス
WindowsでGitを使う際のベストプラクティスWindowsでGitを使う際のベストプラクティス
WindowsでGitを使う際のベストプラクティスRyo Sumasu
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradlekimukou_26 Kimukou
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309Nobuhiro Sue
 
GitHub Actions で CI/CD
GitHub Actions で CI/CDGitHub Actions で CI/CD
GitHub Actions で CI/CDIssei Hiraoka
 
JavaScript on GitHub (#kyotojs)
JavaScript on GitHub  (#kyotojs)JavaScript on GitHub  (#kyotojs)
JavaScript on GitHub (#kyotojs)y_uuki
 
初めてのPadrino
初めてのPadrino初めてのPadrino
初めてのPadrinoTakeshi Yabe
 
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 もプレビューだ!Yasuaki Matsuda
 
Azure Functions あれこれ
Azure Functions あれこれAzure Functions あれこれ
Azure Functions あれこれYasuaki Matsuda
 
Mixiアプリで体験する Open Social
Mixiアプリで体験する Open SocialMixiアプリで体験する Open Social
Mixiアプリで体験する Open Socialngi group.
 
超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...
超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...
超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...満徳 関
 
Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでScala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでHideaki Miyake
 
ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure FunctionsKeiji Kamebuchi
 
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデートChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデートSatoshi Kume
 
Flutter_Forward_Extended_Kyoto-Keynote_Summary
Flutter_Forward_Extended_Kyoto-Keynote_SummaryFlutter_Forward_Extended_Kyoto-Keynote_Summary
Flutter_Forward_Extended_Kyoto-Keynote_Summarycch-robo
 

Similar to 2013.01.18 G*Workshop GGX 2012 Report (20)

Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイ
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
 
Microsoft Graph API Library for Go
Microsoft Graph API Library for GoMicrosoft Graph API Library for Go
Microsoft Graph API Library for Go
 
Goで作って配布するAzureコマンドラインユーティリティ
Goで作って配布するAzureコマンドラインユーティリティGoで作って配布するAzureコマンドラインユーティリティ
Goで作って配布するAzureコマンドラインユーティリティ
 
WindowsでGitを使う際のベストプラクティス
WindowsでGitを使う際のベストプラクティスWindowsでGitを使う際のベストプラクティス
WindowsでGitを使う際のベストプラクティス
 
Grailsのススメ(仮)
Grailsのススメ(仮)Grailsのススメ(仮)
Grailsのススメ(仮)
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradle
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309
 
GitHub Actions で CI/CD
GitHub Actions で CI/CDGitHub Actions で CI/CD
GitHub Actions で CI/CD
 
JavaScript on GitHub (#kyotojs)
JavaScript on GitHub  (#kyotojs)JavaScript on GitHub  (#kyotojs)
JavaScript on GitHub (#kyotojs)
 
初めてのPadrino
初めてのPadrino初めてのPadrino
初めてのPadrino
 
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 もプレビューだ!
 
Azure Functions あれこれ
Azure Functions あれこれAzure Functions あれこれ
Azure Functions あれこれ
 
Mixiアプリで体験する Open Social
Mixiアプリで体験する Open SocialMixiアプリで体験する Open Social
Mixiアプリで体験する Open Social
 
超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...
超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...
超初心者向け!Visual Studio + Git で始める アジャイル開発 #fukuazu #jazug - ふくあず ~夏の終わりはDevelop...
 
Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでScala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまで
 
ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure Functions
 
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデートChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
 
Flutter_Forward_Extended_Kyoto-Keynote_Summary
Flutter_Forward_Extended_Kyoto-Keynote_SummaryFlutter_Forward_Extended_Kyoto-Keynote_Summary
Flutter_Forward_Extended_Kyoto-Keynote_Summary
 

Recently uploaded

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Recently uploaded (8)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

2013.01.18 G*Workshop GGX 2012 Report

  • 1. 2013/01/18 G*Workshop Groovy&Grails eXchange 2012 @London 報告! http://skillsmatter.com/event/groovy-grails/groovy-grails-exchange-2012
  • 2. Who am I ? NTTソフトウェア Grails推進室 Grails Advocate 須藤 悠
  • 4. Note ずっとTrack2(Grails関連)にいました。 Track1(Grails以外のG*)を期待してた人ごめんなさい。 本資料の写真は以下の公開アルバムからの引用です。 - 2012.12.13-14 GGX 2012 London - http://www.flickr.com/photos/y___u/sets/72157632240118573/ - Skills Matter's Groovy & Grails eXchange - http://www.flickr.com/photos/skillsmatter/sets/72157632277265626/ 本資料の写真以外の画像は元スライドからの引用です。
  • 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. Groovy Keynote Groovy エコシステムの新しい仲間 GVM: Groovy enVironment Manager http://gvmtool.net/ 複数バージョンの開発環境を管理する、RVMのG*版 Groovy, Grails, Griffon, Gradle, Vert.x をサポート Linux, MacOS, Cygwin, Solaris, FreeBSD で使えるよ
  • 9. Groovy Keynote Groovy 2.0 のトピック: - モジュール性の向上とcoreの小型化 - 静的型チェックとCompileStatic - JDK 7対応開始(invoke dynamicとproject coin) - indy対応はまだ完全ではない 日本語ではGuillaumeの書いた記事の翻訳版がInfoQに http://www.infoq.com/jp/articles/new-groovy-20
  • 10. Groovy Keynote Groovy 2.0 については他にも… プログラミングGROOVY別冊: 第8章 Groovy 2.0の新機能 http://bit.ly/8Groovy2 Groovy2.0 の新機能 疾きこと CompileStatic のごとし http://www.slideshare.net/uehaj/new-feature-of-groovy20-gworkshop
  • 12. Groovy Keynote 今後の Groovy のロードマップ 元スライドから引用
  • 13. Groovy Keynote Groovy 2.1: - invoke dynamicサポートを完全に - @DelegatesTo(DSLの静的型チェック) - Type checker extension(静的型チェックのカスタマイ ズ) - Alias annotation(アノテーションでinterfaceのチェック)
  • 14. Groovy Keynote Groovy 3.0: - MOP2(新しいMeta-Object Protocol) Groovy 4.0: - Antlr 4 を使った新しい文法 - JDK 8 ラムダ式
  • 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. Grails For Hipsters Grails + Vert.x なアプリ Hipsteroid のデモ https://github.com/robfletcher/hipsteroid 複数ウインドウで作業するとそれぞれ同期されるアプリ 元スライドから引用 元スライドから引用
  • 17. Grails For Hipsters Hipsteroid アプリの構成要素 - Grails 2.1.2 - Vert.x - MongoDB - ImageMagick - CoffeeScript - LESS - Handlebars
  • 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. Grails For Hipsters Hipster ってなんJARO? 【名】  〈俗〉進んでいる人、流行に敏感な人◆1930年代から存 在した言葉だが、1950年代になりジャズファンを指す 言葉として使われるようになった。  ヒップスター◆インディーロックなどを聴き、本や芸術 などについて語る人たち。独特な服装をしている。 http://eow.alc.co.jp/search?q=Hipster
  • 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. Grails Platform Core Grailsプラグインすてき! - 多くのユーザを惹きつける - そうしてより良いプラグインができていく Grailsはフレームワークで、プラットフォームではないが … - もっと便利な機能も内包してくれると嬉しい - Low maintenance を目指したい
  • 22. Grails Platform Core ナイスなプラグインの紹介 - email-confirmation admin UI あるよ - resources mode UI つくりましょう(本体に統合済み) - fresh-security SpringSecurityのラッパー、UIとmail confirmation - weceem イベント処理とUIの統合としてなかなか良い
  • 23. Grails Platform Core Platform-Core プラグイン作ったよ! http://grails.org/plugin/platform-core - Configuration API - Security API - UI Extensions - Navigation API - Events API をまとめたもの
  • 24. Grails Platform Core compile ":platform-core:1.0.RC4“ で導入可能 - 4つのAPI - 35(以上)のタグリブ - 20(以上)の動的メソッドとプロパティ - 2つのArtefact、1つのBean群、1つのGrailsコマンド などを内包している ※Artefact についてはここ: http://grails.org/Developer+-+Artefact+API
  • 25. Grails Platform Core - Configuration API プラグイン名つきのConfig名前空間、Configのマージ Configのバリデーションとデフォルト値設定 - Security API 基本的なセキュリティ機能の抽象化 - UI Extensions タグとヘルパプロパティとファンクションのセット - Navigation API ナビゲーションのためのArtefactとDSL、それにタグリブ - Events API 任意のイベントの実装を接続できる標準的なイベントバス アプリ内でのメッセージングのための軽量デフォルトプロバイダ
  • 26. Grails Platform Core 時間切れになっちゃったけどほんとにすげーんだぜ! > grails update-header コマンドも用意してあるよ みなさんのプラグインもmigrateしてくれると嬉しいな チートシート用意してあるよ http://bit.ly/platform-core-cheat SPOKEnPHOTO をローンチしたよ(※iOSアプリ) http://www.spoketechnologies.com/spokenphoto/
  • 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. Using Spring In Grails Test や Resources で Service を利用する際の - 参照・設定する例 - Transactional にする例 トランザクション処理に関わるヘルパメソッド Spring SpEL を使った複雑な依存性の設定
  • 29. Using Spring In Grails Beanのスコープ Beanのinit()やdestroy()やafterPropertiesSet() Beanポストプロセッサ Beanエイリアス Spring MVC の機能の使い方
  • 30. Using Spring In Grails オライリーの Programming Grails を執筆 Early Release したよ http://shop.oreilly.com/product/0636920024750.do
  • 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. Grails Platform UI Grailsでの rapid development のために out of the box でイケてる画面を用意できる機構が必要 themetrust.com や themeforest.net を見てみて Wordpress みたいなテーマ欲しいよね UIセットとテーマは分かれているべき テーマは複数のUIセットをまとめたものと考える
  • 33. Grails Platform UI Platform-UI プラグイン http://grails.org/plugin/platform-ui Platform-Core 環境において - UIセットの変更 - テーマの変更 が可能になるようにしたもの Bootstrap-Theme / Bootstrap-UI プラグインを利用 Resources プラグインと連携する
  • 34. Grails Platform UI runtime ":platform-ui:1.0.RC3“ runtime ":bootstrap-theme:1.0.RC3“ runtime ":bootstrap-ui:1.0.RC4“ で導入可能 - 55(以上)のタグリブ - 2つのBean - 4つのGrailsコマンド を内包している
  • 35. Grails Platform UI UIセットはGSPテンプレート+Resourcesで実現 テーマはSiteMesh+GSPテンプレート+Resources 2つのタグリブで階層的に記述する - <theme:layoutZone> - <theme:zone> テーマ設定は default/config/set at runtime が可能 リクエストごとにテーマを変えることもできる
  • 36. Grails Platform UI Grails.org のサイトを例に、GSPでzoneを組み立てる例 元スライドから引用 元スライドから引用
  • 37. Grails Platform UI UIセットやテーマをつくるのはGrailsコマンドで > grails create-ui-set > grails fork-ui-set > grails create-theme > grails fork-theme
  • 39. Grails Platform UI テーマチャレンジの作例:昔Geocitiesにあったサイト風 Photo from http://www.flickr.com/photos/y___u/8389051645/
  • 40. Grails Platform UI テーマチャレンジの作例:昔Geocitiesにあったサイト風 Photo from http://www.flickr.com/photos/y___u/8389051833/
  • 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. Leveraging Social Media OAuthのライブラリ - 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. Leveraging Social Media OAuthのAPIラッパーは - 特定のOAuthプロバイダ用ライブラリ - OAuthプロバイダ非依存のフレームワーク にわかれる Grailsではoauthプラグイン(Scribeを利用)が最もシンプル でよくメンテナンスされてる 2つ以上のOAuthネットワークを使うなら、spring-social-* プラグインがオススメ
  • 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
  • 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. Grails Keynote Grails.org 新しくなったよ! Grails 2.0/2.1 の新機能の紹介 - インタラクティブモード、自動リロードの強化、dbconsole - UIとエラーリポートの向上、HTML5 Scaffolding、jQuery - バインド変数によるcontrollerアクション - 新しいAPI PageRenderer, LinkGeneration - Resoucesプラグイン統合を始めとした静的リソース関連 - GORM/Hibernate関連、テスト関連 - Mavenプラグイン 2.1、Cacheプラグインの統合 . . .
  • 48. Grails Keynote Grailsのロードマップ Photo from http://www.flickr.com/photos/y___u/8390137070/
  • 49. Grails Keynote Grails 2.2 の新機能: - Groovy2.0対応 - TypeChecked, CombileStatic, invoke dynamic ... - 名前空間サポート - Service や Domain Class の名前空間がプラグイン名を使って 衝突しないようになるよ - UrlMappings や g:link でプラグイン名を指定できる - Criteria における sqlProjection の機能追加
  • 50. Grails Keynote Grails 2.2 の新機能: - Forked Mode(Forked Tomcat Execution) - grails.project.fork.run=true で使えるようになる - JVMのパラメータをカスタマイズできる - あとは普通に run-app - 停止のための grails stop-app コマンド追加
  • 51. Grails Keynote Grails 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. Grails Keynote Grails 2.3: - 非同期処理 - より高いレベルのプログラミングモデルを用意したい - ダイナミックファインダーのコールバック? - 将来的にはDetachedCriteria? - Hibernate 4 化 / Hibernate設定の充実 - Encoding / Escaping の向上
  • 53. Grails Keynote Grails 3.0: - Gradle対応 - Grailsプラグインプラットフォーム - Grailsアプリケーションプロファイル - バイナリプラグインのランタイムリロード
  • 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. Debugging Grails Database Performance Miniprofiler プラグインの紹介 http://grails.org/plugin/miniprofiler https://github.com/tomdcc/grails-miniprofiler 元スライドから引用
  • 56. Debugging Grails Database Performance Profiler プラグインはログを書き出してくれるが、 Grails(GORM)でデータにアクセス可能な箇所が多すぎる - Controller - Service - View - TagLib . . . etc 最終的にフェッチにどれだけかかったのか分かりづらい 場合も
  • 57. Debugging Grails Database Performance View で 10 SQL を発行し 754 ms かかる例でのデモ クエリとかかる時間が一覧され見やすい クエリを Service にまとめたら 24 ms に短縮された <miniprofiler:javascript /> タグを挿入すれば使える 表示するプロファイル結果はAjaxで受け取っている IntelliJ では、コマンドキー押しながらスワイプで文字の サイズ変えられるよ
  • 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. Contributing Back To Grails Grails に貢献しよう! Mail, JIRA, Github, Hudson(Jenkins) が使われてるよ grails-core は cherry-pick は使わない方針 全ての branch は定期的に master に merge される 5件の簡単な修正を Live Pull-Requesting で実践!
  • 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. Reactive Grails Grailsでイベントバスを使う場合の選択肢 - Spring-Events プラグイン - Routing プラグイン (Apache camel) - Falcone-Util プラグイン (メンテされてない) そこで Platform-Core プラグインですよ!
  • 63. Reactive Grails Events-SI プラグイン - Spring Integration をベースにDSLで記述 - RabbitMQ を通してイベント送るのも楽ちん! 元スライドから引用 元スライドから引用
  • 64. Reactive Grails Events-Push プラグイン - JavaScript でイベントを Listen したい - Atmosphere ベース Grails-Vertx プラグインも計画中!
  • 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. Securing Grails Applications Grailsでのセキュリティ対策 A to Z、必読! セキュリティリスクと対策を網羅してある OWASP: Open Web Application Security Project でもチートシート公開したよ!(まだ中身ないけど) https://www.owasp.org/index.php/Grails_Secure_Code_Review_Cheat_Sheet Don't trust the users!
  • 67. Securing Grails Applications SQLインジェクション対策 - わかってると思いますがプレースホルダ使いましょう XSS対策 - grails.views.default.codec="html" 使いましょう - <% %> 使うときは気をつけて - <%=person.value%> みたいな使い方はしないように
  • 68. Securing Grails Applications session fixation対策 - grails.plugins.springsecurity. useSessionFixationPrevention=true insecure direct object reference対策 - .get(id) は id を知られても問題ないオブジェクトに限る こと - ACLの@PreAuthorizeを使っても良い - hdiv プラグインもあるよ
  • 69. Securing Grails Applications hdiv: http data integrity validator http://hdiv.org/ hdiv プラグインで Grails 2.3 からサポート予定! https://github.com/burtbeckwith/grails-hdiv/ http://repo.grails.org/grails/plugins-releases/org/hdiv/
  • 70. Securing Grails Applications CSRF対策 - XSS対策をした上で、更新処理にはPOSTメソッドを使 う - リンクとフォームに生成トークンを使う - hdivを使う security misconfiguration - 不要なものは消すこと - デフォルトパスワードは危険 . . . etc
  • 71. Securing Grails Applications failure to restrict url access - grails.plugins.springsecurity.rejectIfNoRule=true を忘れると 大変! insufficient transport layer protection - grails.plugins.springsecurity. auth.forceHttps=true unvalidated redirecs and forwards - ?nextPage=/hoge みたいなGETパラメータがあるとき =http://othersite.com/ みたいなことをやりやすい
  • 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. 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. Building An Ecommerce Business With GR8 ver 1.0: Grails, MySQL, Tomcat, ehcache/terracotta, RabbitMQ 4人でつくった Java → Grails への転向、Grailsの簡潔さに感動! テストのカバレッジ低かった、CIも無し コントローラにたくさんのコードがあったり GORMのクエリがイケてなかったり
  • 75. Building An Ecommerce Business With GR8 使ったGrailsプラグイン - Rabbitmq - Spring-Security - Rendering - Quartz - Feeds - Export . . . Etc JavaMelodyのダッシュボードでいろいろ見れて嬉しかった JDBCに入ってきたクエリとか Logstalgia でログを可視化した
  • 76. Building An Ecommerce Business With GR8 ver 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. Building An Ecommerce Business With GR8 Spock と Jasmine を使ってテストケースを作成 Jenkins も使うようにした Pushstate でURL書き換え ブックマークとかソーシャルメディアにも対応可能ですげー 便利 Googleのクローラが変なパラメータ付きでやってくる! Zombie.js でサイトを巡回し、生成されたページを静的コン テンツとして利用 WebサーバもDBサーバも負荷は減ったしリンクのシェアはで きるようになったしいいことずくめ
  • 78. Thanks. Copyright(C) 2013 NTT Software Corporation All Rights Reserved. 記載されているロゴ、システム名、製品名は各社 および商標権者の登録商標あるいは商標です。