[Start] Playing
-
Upload
yusuke-kuoka -
Category
Technology
-
view
1.471 -
download
1
description
Transcript of [Start] Playing
![Page 1: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/1.jpg)
> play new
![Page 2: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/2.jpg)
Do you knowWeb Application Framework?
![Page 3: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/3.jpg)
Do you knowPlay!> framework?
![Page 4: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/4.jpg)
Do you knowScala?
’’’
![Page 5: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/5.jpg)
[Start]Playing!
@mumoshu
![Page 6: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/6.jpg)
php
java
scala
js
python
perl
0 5 10 15
# of atnders
![Page 7: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/7.jpg)
PHP vs Play
CakePHP
Symfony
Slim
Play!>
PHP
<- thin rich ->
CakePHPCakePHPCakePHP
Play!>Play!>
Symfony
CakePHP
Play!>
Symfony
CakePHP
Play!>
Symfony
CakePHP
Play!>
Symfony
CakePHP
Play!>
Symfony
CakePHP
Play!>
naked?
![Page 8: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/8.jpg)
Play is
• A web application framework
• Ease common tasks in web dev
![Page 9: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/9.jpg)
Play basics
•Easy start•Simple development•Scala
![Page 10: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/10.jpg)
Play basics
•Easy start•Simple development•Scala
![Page 11: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/11.jpg)
How to start
•Download•Unzip•play new
![Page 12: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/12.jpg)
Play basics
•Easy start•Simple development•Scala
![Page 13: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/13.jpg)
How you develop
•play run•Repeat:•Write code!•F5!
![Page 14: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/14.jpg)
Play basics
•Easy start•Simple development•Scala
![Page 15: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/15.jpg)
Scala
• Run on JVM
• A lot of Java libraries
• Hybrid language
• Imperative programming
• Object oriented programming
• Functional programming
’’’
![Page 16: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/16.jpg)
Whats happy with FP
• Concurrency
• Scalability
![Page 17: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/17.jpg)
Imperative vs Functional
• Imperative Programming
do A -> state++,
do B -> state++, ...
• Functional programming
in1 -> f(x) -> out1in2 -> g(x) -> out2
![Page 18: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/18.jpg)
+ concurrency
![Page 19: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/19.jpg)
Easy concurrency
• Imperative programming
do A -> state <- do B
> sudden conflict!!! <
• Functional programming
in1 -> f(x) -> out1, in2 -> g(x) -> out2 > no conflict!!! <
![Page 20: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/20.jpg)
Easy scalability
• Single Playreq -> acion1(x) -> result
req -> acion2(x) -> result...
• Multiple Play’sreq -> play1 -> result
req -> play2 -> result...
![Page 21: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/21.jpg)
Play basics
•Easy start•Simple development•Scala
![Page 22: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/22.jpg)
Play basics
•Easy start•Simple development•Scala
Hopeful!
![Page 24: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/24.jpg)
Play specifics
•Documented•Translated•Pluggable•Statically Typed
![Page 25: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/25.jpg)
Documented
• 0ver 100 pages
• http://playframework.org/
![Page 26: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/26.jpg)
Play specifics
•Documented•Translated•Pluggable•Statically Typed
![Page 27: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/27.jpg)
Translated
• Over 100 pages
• http://playdocja.appspot.com/
![Page 28: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/28.jpg)
Play specifics
•Documented•Translated•Pluggable•Statically Typed
![Page 29: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/29.jpg)
Pluggable
• 27 plugins
• http://www.playframework.org/documentation/2.0.4/Modules
![Page 30: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/30.jpg)
Plugins
• LESS
• SASS
• CoffeeScript
• TypeScript <- Me
• Velocity <- FuRyu
• Memcached <- Me
• Redis
• MongoDB
• etc.
modern web dev with a lot of plugins
![Page 31: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/31.jpg)
Play specifics
•Documented•Translated•Pluggable•Statically Typed
![Page 32: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/32.jpg)
Statically Typed
• Can be freed from
• null/NULL
• Free from
• ReferenceError
• TypeError
• ‘Call to undefined function’
![Page 33: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/33.jpg)
Statically Typedvs Not ~ ?
• What we GET
if its NOT statically typed
![Page 34: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/34.jpg)
• careless mistakes
• typos
on runtime
You see
![Page 35: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/35.jpg)
NullPointerException
![Page 36: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/36.jpg)
ReferenceError
![Page 37: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/37.jpg)
TypeError
![Page 38: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/38.jpg)
Call to undefined function
![Page 39: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/39.jpg)
Play specifics
•Documented•Translated•Pluggable•Typed
![Page 40: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/40.jpg)
Play specifics
•Documented•Translated•Pluggable•Typed
Productive!
![Page 41: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/41.jpg)
break2/3
WEB+DB vol.71
![Page 42: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/42.jpg)
Play 2.x
• We have Play 1.x, 2.0
• Play 2.1 is coming
![Page 43: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/43.jpg)
Play 1.x
• Written in Java
• Supports Java and Scala
• Since 2009
• Stable
![Page 44: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/44.jpg)
Play 2.0
• Written in Scala
• Supports Scala and Java
• Since 2012
• More scalability
• Typesafe Stack & Typesafe, Inc.
![Page 45: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/45.jpg)
Play 2.1
• Features
• Improvements
• Changes
![Page 46: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/46.jpg)
Play 2.1Features
• Scala 2.10
• Scala’s Promise API
• Better JSON API
• Project templates & Scaffolding
![Page 47: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/47.jpg)
Play 2.1 Improvements
• Run tests in Forked JVM
• Out of memory: PermGen Space
• Faster compile
• thanks to Scala 2.10 & SBT 0.12
![Page 48: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/48.jpg)
Play 2.1Changes
• Anorm to Slick(ScalaQuery)
![Page 49: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/49.jpg)
Play 2.x is
•Active!
![Page 50: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/50.jpg)
Recommendation
• Do you want to:
• write web apps in Java/Scala?
• try modern tech?
![Page 51: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/51.jpg)
> play new
![Page 52: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/52.jpg)
> play new
![Page 53: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/53.jpg)
> play run
![Page 54: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/54.jpg)
[Start]Playing!
@mumoshu
![Page 55: [Start] Playing](https://reader036.fdocuments.net/reader036/viewer/2022070323/559530cb1a28ab24458b45f7/html5/thumbnails/55.jpg)
Thank you!