SlideShare a Scribd company logo
1 of 24
Download to read offline
Play! Framework 2.0の
   ちょっとした紹介
Play Framework 2.0とは?
●   Scala/JavaのWeb Application Framework
       –   フルスタック。
       –   Ruby on Railsのような高い生産性
              ●   「ソース修正・保存→ブラウザreload」で
                   コンパイルが走り処理実行。(サーバ再起
                   動不要)
       –   VIEWにおいても静的型付けで安全(Scalaに
            限る)
●   今時の技術を盛り込み済み
       –   JSON、非同期処理、WebService連携、自動
            テストサポート
●   ※Java EEのお作法に非準拠。
Scala
●
    JavaVM上で動く静的型付けの関数型/オブジェ
    クト指向言語
      –   全て(関数も)がオブジェクト
      –   型推論により、冗長な型記述を削減。
      –   パターンマッチで条件分岐がすごいことに。
      –   Option型によるnullのラッピング
      –   Javaのライブラリを呼び出すことができる。
      –   IDEのサポートが充実してきている。
      –   Twitter、Foursquare、Linkedin、英紙
            guardianでも使われている。
      –   Javaよりもコンパイルの時間がかかる。
動作環境、ラインセンス
●   Scala
       –    JRE 1.5以降
       –    Scala License(BSDライク)

●   Play! Framework 2.0
       –    JDK 6以降
       –    Apache License, Version 2.0
環境構築-1
●   JDK 6のインストール
      –   省略
●   Scalaのインストール
      –   http://www.scala-lang.org/downloads
           (※2.9以降を推奨。)
●
    Eclipseのインストール
      –   省略
●   Scala IDEのインストール
      –   http://scala-
           ide.org/download/current.html 参照
環境構築-2
●   Play! 2.0 インストール
       –   http://www.playframework.org/documen
             tation/2.0/Installing
       –   Zipファイルをダウンロード
       –   解凍
       –   PATHを通す。
       –   以上!
新しいアプリケーションを作成-1
            myappという名前で
            新しいアプリケーションを作成




    ENTER
新しいアプリケーションを作成-2




     テンプレートを選択。
     ScalaとJavaが選べる。
     ここではScalaを選択。
新しいアプリケーションを作成-3




      テンプレートに基づいて
      アプリケーションが作られる。
playコンソールを起動



    作られたアプリケーション
    フォルダへ移動。




        playコンソールを起動
サーバを起動




サーバを起動。




          localhost:9000で起動
ブラウザで確認
Eclipseのプロジェクトに変換
●
    Playコンソールで
      –   eclipsify
      –   と入力すると、
            ●
                .classpath
            ●   .project
      –   が出力されるので、Eclipseにインポート。
Play!の基本:ルーティング
●
    /conf/routesファイル
        –   HTTPメソッド、URIパターン、Action ジェネ
             レータを記述
●   例:GET /hello/:name controllers.Hello.hi(name: String)
      – HTTPメソッドがGETで、
      – /hello/:nameというURIの場合、
      – controllers.Hello.hi(name: String) を呼び出す
               ● :nameは動的に変わる値。
               ● /hello/John というURIの場合、

                   controllers.Hello.hi(John) を実行
Play!の基本:Action
●
    play.api.mvc.Action
        –   play.api.mvc.Requestをplay.api.mvc.Resultに変
              換する関数。
        –   リクエストを受け取って、処理結果をクライアント
              に返す。
        –   普通のWebの仕組みですね。
Play!の基本:Controller
●
    ControllerはActionジェネレータ
       –   Requestを受け取ってResultを返す関数を書く。
       –   Controllerの例(controllers/Hello.scala):
                              hi関数:
                              String型のnameという引数を受け取る。
                              “Hello! :”という文字列に、
                              引数を追加した値を返す。




                         Okは、HTTPステータスコード「200 OK」、
                         text/plainであるレスポンスボディを返す。
実行結果

          /hello/:name




hi関数から返された結果
Play!の基本:view(テンプレート)
●
    View(テンプレート)はコンパイルされるとScalaの
    関数になる
      –   コンパイル時点で型エラーのチェックなどが可能。
Play!の基本:view(テンプレート)の例
●
    view/greeteings.scala.html
                           テンプレートの引数




                          @以降は
                          Scalaステートメントと判断される。
Play!の基本:view(テンプレート)呼び出し



                     hi関数をtemplateを使うように
                     書き換え。




        Play!の規約で、views/greeting.scala.htmlは
        view.shtml.greeting関数にコンパイルされる。
        Controllerからすると、普通のScala関数の呼び出し。
Play!の基本:view(テンプレート)呼び出し
Play!の基本:テンプレートは関数
●
    view/greeteings.scala.html
    でおかしな記述をすると




                      存在しない値を参照
コンパイルエラーになる
Play!を更に学ぶには?
●
    Play 2.0 documentation
       –   http://www.playframework.org/documentati
            on/2.0/Home
●   サンプルアプリケーション
       –   バイナリパッケージに同梱
●   メーリングリスト
       –   https://groups.google.com/forum/?
            hl=en&fromgroups#!forum/play-framework

More Related Content

What's hot

Serverspec at Testing Framework Meeting
Serverspec at Testing Framework MeetingServerspec at Testing Framework Meeting
Serverspec at Testing Framework MeetingGosuke Miyashita
 
Webサーバ勉強会#1_prefork_8-15
Webサーバ勉強会#1_prefork_8-15Webサーバ勉強会#1_prefork_8-15
Webサーバ勉強会#1_prefork_8-15mashan94
 
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)CLARA ONLINE, Inc.
 
StackStormではじめる1人Slackのすすめ
StackStormではじめる1人SlackのすすめStackStormではじめる1人Slackのすすめ
StackStormではじめる1人Slackのすすめ光平 八代
 
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストServerspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストKen Sawada
 
おすすめ gem
おすすめ gemおすすめ gem
おすすめ gemchocoby
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからTakeshi Kuramochi
 
Webサーバ勉強会03
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03oranie Narut
 
CakePHP2でMySQL Replication
CakePHP2でMySQL ReplicationCakePHP2でMySQL Replication
CakePHP2でMySQL ReplicationYoshihiro Ohsuka
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネット株式会社
 
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnairシンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnairNaoya Inada
 
Akkaの翻訳みんなでやろう Let's translate akka doc
Akkaの翻訳みんなでやろう Let's translate akka docAkkaの翻訳みんなでやろう Let's translate akka doc
Akkaの翻訳みんなでやろう Let's translate akka doc賢太郎 前多
 
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴Akihiro Kuwano
 

What's hot (20)

Serverspec at Testing Framework Meeting
Serverspec at Testing Framework MeetingServerspec at Testing Framework Meeting
Serverspec at Testing Framework Meeting
 
Webサーバ勉強会#1_prefork_8-15
Webサーバ勉強会#1_prefork_8-15Webサーバ勉強会#1_prefork_8-15
Webサーバ勉強会#1_prefork_8-15
 
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
 
StackStormではじめる1人Slackのすすめ
StackStormではじめる1人SlackのすすめStackStormではじめる1人Slackのすすめ
StackStormではじめる1人Slackのすすめ
 
Startup JavaScript
Startup JavaScriptStartup JavaScript
Startup JavaScript
 
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストServerspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
 
おすすめ gem
おすすめ gemおすすめ gem
おすすめ gem
 
Ansible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれから
 
Antのススメ
AntのススメAntのススメ
Antのススメ
 
MHA on AWS+Rails
MHA on AWS+RailsMHA on AWS+Rails
MHA on AWS+Rails
 
Webサーバ勉強会03
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03
 
CakePHP2でMySQL Replication
CakePHP2でMySQL ReplicationCakePHP2でMySQL Replication
CakePHP2でMySQL Replication
 
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
さくらインターネットにおけるServerspec導入事例(DevOps勉強会 #3 Serverspecの巻)
 
Ansible入門...?
Ansible入門...?Ansible入門...?
Ansible入門...?
 
Redmine Ansible
Redmine AnsibleRedmine Ansible
Redmine Ansible
 
scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnairシンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnair
 
Akkaの翻訳みんなでやろう Let's translate akka doc
Akkaの翻訳みんなでやろう Let's translate akka docAkkaの翻訳みんなでやろう Let's translate akka doc
Akkaの翻訳みんなでやろう Let's translate akka doc
 
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
 
ScalaCL in ScalaKaigi
ScalaCL in ScalaKaigiScalaCL in ScalaKaigi
ScalaCL in ScalaKaigi
 

Similar to Play framework 2.0のちょっとした紹介

Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Daisuke Hiraoka
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情takezoe
 
Scalaでのプログラム開発
Scalaでのプログラム開発Scalaでのプログラム開発
Scalaでのプログラム開発Kota Mizushima
 
最新技術動向(2011年上期)
最新技術動向(2011年上期)最新技術動向(2011年上期)
最新技術動向(2011年上期)Mahito Ogura
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッションYuichi Hasegawa
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-靖 小田島
 
Scala EE 7 Essentials
Scala EE 7 EssentialsScala EE 7 Essentials
Scala EE 7 Essentialstnoda
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼうyouku
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24Kazuhiro Sera
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発papamitra
 
Dev love関西 forslideshare
Dev love関西 forslideshareDev love関西 forslideshare
Dev love関西 forslideshareDaisuke Kasuya
 
Scalaの現状と課題
Scalaの現状と課題Scalaの現状と課題
Scalaの現状と課題Kota Mizushima
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireAkio Katayama
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
 
Rails3.1rc4を試してみた
Rails3.1rc4を試してみたRails3.1rc4を試してみた
Rails3.1rc4を試してみたTakahiro Hidaka
 
Scala2.8への移行
Scala2.8への移行Scala2.8への移行
Scala2.8への移行guest5f4320
 

Similar to Play framework 2.0のちょっとした紹介 (20)

Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
MoteMote Compiler Plugin
MoteMote Compiler PluginMoteMote Compiler Plugin
MoteMote Compiler Plugin
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
 
Scalaでのプログラム開発
Scalaでのプログラム開発Scalaでのプログラム開発
Scalaでのプログラム開発
 
最新技術動向(2011年上期)
最新技術動向(2011年上期)最新技術動向(2011年上期)
最新技術動向(2011年上期)
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッション
 
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
 
Scala EE 7 Essentials
Scala EE 7 EssentialsScala EE 7 Essentials
Scala EE 7 Essentials
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発
 
Dev love関西 forslideshare
Dev love関西 forslideshareDev love関西 forslideshare
Dev love関西 forslideshare
 
Play勉強会 第3回
Play勉強会 第3回Play勉強会 第3回
Play勉強会 第3回
 
Scalaの現状と課題
Scalaの現状と課題Scalaの現状と課題
Scalaの現状と課題
 
いまさらJavaScript
いまさらJavaScriptいまさらJavaScript
いまさらJavaScript
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
Rails3.1rc4を試してみた
Rails3.1rc4を試してみたRails3.1rc4を試してみた
Rails3.1rc4を試してみた
 
Scala2.8への移行
Scala2.8への移行Scala2.8への移行
Scala2.8への移行
 
Scala2.8への移行
Scala2.8への移行Scala2.8への移行
Scala2.8への移行
 

More from Ryo RKTM

ヤマオススメ@NGK2014
ヤマオススメ@NGK2014ヤマオススメ@NGK2014
ヤマオススメ@NGK2014Ryo RKTM
 
NGK2014 ヤマオススメ
NGK2014 ヤマオススメNGK2014 ヤマオススメ
NGK2014 ヤマオススメRyo RKTM
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘い20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘いRyo RKTM
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い βRyo RKTM
 
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版20120806 ドメイン駆動設計読書会at名古屋のお誘いα版
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版Ryo RKTM
 
20111127 scala hackathon_in_名古屋
20111127 scala hackathon_in_名古屋20111127 scala hackathon_in_名古屋
20111127 scala hackathon_in_名古屋Ryo RKTM
 
20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopment20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopmentRyo RKTM
 
名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋Ryo RKTM
 
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版Ryo RKTM
 
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』Ryo RKTM
 
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料Ryo RKTM
 
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』Ryo RKTM
 
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』Ryo RKTM
 
名古屋アジャイル勉強会第9回(2009/02/27)発表資料
名古屋アジャイル勉強会第9回(2009/02/27)発表資料名古屋アジャイル勉強会第9回(2009/02/27)発表資料
名古屋アジャイル勉強会第9回(2009/02/27)発表資料Ryo RKTM
 

More from Ryo RKTM (14)

ヤマオススメ@NGK2014
ヤマオススメ@NGK2014ヤマオススメ@NGK2014
ヤマオススメ@NGK2014
 
NGK2014 ヤマオススメ
NGK2014 ヤマオススメNGK2014 ヤマオススメ
NGK2014 ヤマオススメ
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘い20130202 ドメイン駆動設計読書会at名古屋のお誘い
20130202 ドメイン駆動設計読書会at名古屋のお誘い
 
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β20130202 ドメイン駆動設計読書会at名古屋のお誘い β
20130202 ドメイン駆動設計読書会at名古屋のお誘い β
 
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版20120806 ドメイン駆動設計読書会at名古屋のお誘いα版
20120806 ドメイン駆動設計読書会at名古屋のお誘いα版
 
20111127 scala hackathon_in_名古屋
20111127 scala hackathon_in_名古屋20111127 scala hackathon_in_名古屋
20111127 scala hackathon_in_名古屋
 
20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopment20111105 LL名古屋 俺と嫁のagiLe deveLopment
20111105 LL名古屋 俺と嫁のagiLe deveLopment
 
名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋名古屋Scala勉強会のご紹介@OSC2010名古屋
名古屋Scala勉強会のご紹介@OSC2010名古屋
 
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
第24回名古屋アジャイル勉強会『朝会を始めよう!』α版
 
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』
20091226 名古屋SGGAE/J勉強会発表資料『Lift on GAE/J』
 
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
名古屋アジャイル勉強会第17回「仕事を定時に終わらせるための『タイムボックス』の考え方」発表資料
 
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
 
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』
第13回名古屋アジャイル勉強会発表資料『チケット駆動開発入門』
 
名古屋アジャイル勉強会第9回(2009/02/27)発表資料
名古屋アジャイル勉強会第9回(2009/02/27)発表資料名古屋アジャイル勉強会第9回(2009/02/27)発表資料
名古屋アジャイル勉強会第9回(2009/02/27)発表資料
 

Recently uploaded

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 

Recently uploaded (7)

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 

Play framework 2.0のちょっとした紹介

  • 1. Play! Framework 2.0の ちょっとした紹介
  • 2. Play Framework 2.0とは? ● Scala/JavaのWeb Application Framework – フルスタック。 – Ruby on Railsのような高い生産性 ● 「ソース修正・保存→ブラウザreload」で コンパイルが走り処理実行。(サーバ再起 動不要) – VIEWにおいても静的型付けで安全(Scalaに 限る) ● 今時の技術を盛り込み済み – JSON、非同期処理、WebService連携、自動 テストサポート ● ※Java EEのお作法に非準拠。
  • 3. Scala ● JavaVM上で動く静的型付けの関数型/オブジェ クト指向言語 – 全て(関数も)がオブジェクト – 型推論により、冗長な型記述を削減。 – パターンマッチで条件分岐がすごいことに。 – Option型によるnullのラッピング – Javaのライブラリを呼び出すことができる。 – IDEのサポートが充実してきている。 – Twitter、Foursquare、Linkedin、英紙 guardianでも使われている。 – Javaよりもコンパイルの時間がかかる。
  • 4. 動作環境、ラインセンス ● Scala – JRE 1.5以降 – Scala License(BSDライク) ● Play! Framework 2.0 – JDK 6以降 – Apache License, Version 2.0
  • 5. 環境構築-1 ● JDK 6のインストール – 省略 ● Scalaのインストール – http://www.scala-lang.org/downloads (※2.9以降を推奨。) ● Eclipseのインストール – 省略 ● Scala IDEのインストール – http://scala- ide.org/download/current.html 参照
  • 6. 環境構築-2 ● Play! 2.0 インストール – http://www.playframework.org/documen tation/2.0/Installing – Zipファイルをダウンロード – 解凍 – PATHを通す。 – 以上!
  • 7. 新しいアプリケーションを作成-1 myappという名前で 新しいアプリケーションを作成 ENTER
  • 8. 新しいアプリケーションを作成-2 テンプレートを選択。 ScalaとJavaが選べる。 ここではScalaを選択。
  • 9. 新しいアプリケーションを作成-3 テンプレートに基づいて アプリケーションが作られる。
  • 10. playコンソールを起動 作られたアプリケーション フォルダへ移動。 playコンソールを起動
  • 11. サーバを起動 サーバを起動。 localhost:9000で起動
  • 13. Eclipseのプロジェクトに変換 ● Playコンソールで – eclipsify – と入力すると、 ● .classpath ● .project – が出力されるので、Eclipseにインポート。
  • 14. Play!の基本:ルーティング ● /conf/routesファイル – HTTPメソッド、URIパターン、Action ジェネ レータを記述 ● 例:GET /hello/:name controllers.Hello.hi(name: String) – HTTPメソッドがGETで、 – /hello/:nameというURIの場合、 – controllers.Hello.hi(name: String) を呼び出す ● :nameは動的に変わる値。 ● /hello/John というURIの場合、 controllers.Hello.hi(John) を実行
  • 15. Play!の基本:Action ● play.api.mvc.Action – play.api.mvc.Requestをplay.api.mvc.Resultに変 換する関数。 – リクエストを受け取って、処理結果をクライアント に返す。 – 普通のWebの仕組みですね。
  • 16. Play!の基本:Controller ● ControllerはActionジェネレータ – Requestを受け取ってResultを返す関数を書く。 – Controllerの例(controllers/Hello.scala): hi関数: String型のnameという引数を受け取る。 “Hello! :”という文字列に、 引数を追加した値を返す。 Okは、HTTPステータスコード「200 OK」、 text/plainであるレスポンスボディを返す。
  • 17. 実行結果 /hello/:name hi関数から返された結果
  • 18. Play!の基本:view(テンプレート) ● View(テンプレート)はコンパイルされるとScalaの 関数になる – コンパイル時点で型エラーのチェックなどが可能。
  • 19. Play!の基本:view(テンプレート)の例 ● view/greeteings.scala.html テンプレートの引数 @以降は Scalaステートメントと判断される。
  • 20. Play!の基本:view(テンプレート)呼び出し hi関数をtemplateを使うように 書き換え。 Play!の規約で、views/greeting.scala.htmlは view.shtml.greeting関数にコンパイルされる。 Controllerからすると、普通のScala関数の呼び出し。
  • 22. Play!の基本:テンプレートは関数 ● view/greeteings.scala.html でおかしな記述をすると 存在しない値を参照
  • 24. Play!を更に学ぶには? ● Play 2.0 documentation – http://www.playframework.org/documentati on/2.0/Home ● サンプルアプリケーション – バイナリパッケージに同梱 ● メーリングリスト – https://groups.google.com/forum/? hl=en&fromgroups#!forum/play-framework