Rustem Suniev: London Scala Users' Group:Intro to Play - 11/08/2010

  • 1,689 views
Uploaded on

Rustem Suniev: London Scala Users' Group:Intro to Play - 11/08/2010

Rustem Suniev: London Scala Users' Group:Intro to Play - 11/08/2010

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,689
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
23
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Introduction to Play! Framework
  • 2. About me Rustem Suniev Senior Developer at Autoquake.com Technologies we use: Java,JEE,Groovy,Grails,GWT My current interests are: Scala, Lift, Play, Clojure Twitter: @vigosun Email: rustem.suniev@gmail.com
  • 3. Why another Web framework? I'm tired to learn all of them
  • 4. What is Play! ● Started 2008 by Guillaume Bort, play dev team and Zenexity ● A new unconventional for Java world approach ● There is no traditional JEE stack ● It's a platform not just a glue framework ● Usability first ● Current version is 1.0.3.2
  • 5. Main features ● Stateless ● RESTfull (Uses HTTP features not just as a transport) ● No-compilation ● Refresh and see the changes ● In-build compiler and classloader ● Efficient error reporting system ● Build in test framework ● Templates
  • 6. MVC in Play! ● Model (not anemic) ● Controller ● Convention based REST routing ● View (efficient template system)
  • 7. What is Stateless exactly? ● Share nothing architecture ● Easy to scale and support ● Simplifies the code but sometimes we need a state? ● Cache (EhCache, Memcached for scaling options) ● Workarounds
  • 8. Testing ● Can't execute tests outside of the framework We have 3 types of tests: ● Unit ● Functional ● Selenium simplified ● Code coverage via Cobertura plugin ● YAML and Fixtures
  • 9. Jobs ● Scheduled jobs ● Bootstrapping ● Suspendable requests Future<InputStream> task = new ReportAsPDFJob(report).now(); waitFor(task);
  • 10. Modules system Some of the available modules: ● CRUD ● GAE,GWT ● Guice, Spring ● Stax, Playapps.net ● Siena, Ebean DB, MongoDB ● Installing is simple “play install scala” ● Easy to create a module “play new-module”
  • 11. Small but nice things in Play! ● Framework ID's (play id, prod321.username=test) ● Localisation and I18N (<h1>&{'views.main.tools.login'}</h1>) ● User and SEO friendly URL's ● Logging support (Logger.info("A log message")) ● Security support ● IDE support
  • 12. Where is Scala stuff? Enough Java Now onto Play! Scala (created by Peter Hausel) “I like Lift ;-) Play is my second choice for Scala-friendly web frameworks” David Pollak creator of Lift on SOF
  • 13. Why Scala? ● Alternative implementation but same platform ● Java enhancers (ex get,set) ● Traits ● Improve expressiveness ● Challenges (API, different language features, Interoperability) ● Another language in the future?
  • 14. What Scala brings to Play! ● Scala 2.8 support ● ScalaTest ● Scalate templates ● Scala console (tab completion) ● AKKA integration
  • 15. Demo time Ok let's build a simple app.
  • 16. Any cons at all? ● Documentation is not up to date and scattered ● Scala module is still in dev (but API changes are less likely) ● Couldn't get cobertura working for 1.1 with Scala ● Sometimes changes in Scala classes are not picked (play clean) ● Start-up time grows with number of classes (play recompiles dependencies as well) ● Scala module (Had to compile from source code)
  • 17. Preparing for Production ● Can be compiled and packaged ● Can be deployed to all major containers ● Some security issue were found recently so it's advised to keep it behind a proxy ● Production behaviour is different ● Use server ID
  • 18. Summary ● Looking forward to 1.1 release ● Scala module looks promising and easy to use ● Better IDE support is required ● Other Scala modules need more documentation ● Better attention is required to keep Java and Scala modules up to date ● Start using Play! Java now
  • 19. Resourses ● www.playframework.org ● http://groups.google.com/group/play-framework/ ● http://planet.playframework.org/
  • 20. Thank you!