Mojolicious mvc

796 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
796
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Mojolicious mvc

  1. 1. Mojolicious - advocating for evaluation at RMG by Árpád Szász 2012
  2. 2. Disclaimer ● No comparison with Catalyst or Dancer
  3. 3. Disclaimer ● No comparison with Catalyst or Dancer ● Highlight Mojolicious' strenght points
  4. 4. Disclaimer ● No comparison with Catalyst or Dancer ● Highlight Mojolicious' strength points ● 2 years experience using Mojolicious
  5. 5. Introduction ● Development started in late 2008 by Sebastian Reidel (original developer of Catalyst)
  6. 6. Introduction ● Development started in late 2008 by Sebastian Reidel (original developer of Catalyst) ● Concept based initially on Sinatra (Ruby), steals ideas from other frameworks
  7. 7. Introduction ● Development started in late 2008 by Sebastian Reidel (original developer of Catalyst) ● Concept based initially on Sinatra (Ruby), steals ideas from other frameworks ● Focus on supporting latest web technologies
  8. 8. Introduction ● Development started in late 2008 by Sebastian Reidel (original developer of Catalyst) ● Concept based initially on Sinatra (Ruby), steals ideas from other frameworks ● Focus on supporting latest web technologies ● “Duct tape for the HTML5 web”
  9. 9. Introduction ● Development started in late 2008 by Sebastian Reidel (original developer of Catalyst) ● Concept based initially on Sinatra (Ruby), steals ideas from other frameworks ● Focus on supporting latest web technologies ● “Duct tape for the HTML5 web” ● Active and helpful community
  10. 10. Introduction ● Development started in late 2008 by Sebastian Reidel (original developer of Catalyst) ● Concept based initially on Sinatra (Ruby), steals ideas from other frameworks ● Focus on supporting latest web technologies ● “Duct tape for the HTML5 web” ● Active and helpful community
  11. 11. Highlights ● Flexibility
  12. 12. Highlights ● Flexibility ● Self-contained
  13. 13. Highlights ● Flexibility ● Self-contained ● Fast-prototyping
  14. 14. Highlights ● Flexibility ● Self-contained ● Fast-prototyping ● Built-in web servers
  15. 15. Highlights ● Flexibility ● Self-contained ● Fast-prototyping ● Built-in web servers ● Realtime/async features
  16. 16. Flexibility ● Modular design
  17. 17. Flexibility ● Modular design – Mojo – runtime environment
  18. 18. Flexibility ● Modular design – Mojo – runtime environment – Mojolicious::Lite – fast prototyping
  19. 19. Flexibility ● Modular design – Mojo – runtime environment – Mojolicious::Lite – fast prototyping – Mojolicious.pm – full-featured web applications
  20. 20. Flexibility ● Suitable to any workflow – No built-in Model
  21. 21. Flexibility ● Suitable to any workflow – No built-in Model – No rigid constraints imposed by design
  22. 22. Flexibility ● Suitable to any workflow – No built-in Model – No rigid constraints imposed by design – Customizable RESTful routes dispatcher
  23. 23. Self-contained ● Single 500kB CPAN distribution (only requirement is Perl 5.10.1+) ● Has built-in templating engine, but supports others through plugins
  24. 24. Self-contained ● Built-in support for: – client-side sessions
  25. 25. Self-contained ● Built-in support for: – client-side sessions – JSON
  26. 26. Self-contained ● Built-in support for: – client-side sessions – JSON – testing
  27. 27. Self-contained ● Built-in support for: – client-side sessions – JSON – testing – real-time web technologies: Comet (long-polling), Eventsource, websockets
  28. 28. Self-contained ● Built-in support for: – client-side sessions – JSON – testing – real-time web technologies: Comet (long-polling), Eventsource, websockets
  29. 29. Self-contained ● Built-in support for: – client-side sessions – JSON – testing – real-time web technologies: Comet (long-polling), Eventsource, websockets – PSGI (Plack), IPv6, etc.
  30. 30. Fast prototyping ● Create Mojolicious::Lite application
  31. 31. Fast prototyping ● Create Mojolicious::Lite application ● Test with built-in development web-server
  32. 32. Fast prototyping ● Create Mojolicious::Lite application ● Test with built-in development web-server (morbo) ● Convert to full application (Mojolicious)
  33. 33. Hypnotoad ● Built-in high-performance web server
  34. 34. Hypnotoad ● Built-in high-performance web server: – Non blocking I/O HTTP and Websocket server
  35. 35. Hypnotoad ● Built-in high-performance web server: – Non blocking I/O HTTP and Websocket server – Hot deployment support
  36. 36. Hypnotoad ● Built-in high-performance web server: – Non blocking I/O HTTP and Websocket server – Hot deployment support – Usual setup: Hypnotoad behind nginx reverse- proxy
  37. 37. Testing ● TDD mentality (over 10.000 tests)
  38. 38. Testing ● TDD mentality (over 10.000 tests) ● Test::Mojo built-in framework

×