Ruby On Rails - webdevelopment wordt weer leuk!

1,026 views
951 views

Published on

Deze presentatie heb ik een jaar geleden (2007) gegeven om de developers bij Ordina | Wisdom enthousiast te maken voor Ruby on Rails.

In het eerste deel ga ik voornamelijk in op de filosofie achter Ruby on Rails: programmer happines :)

De demo zit niet in de slides van de presentatie.

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

  • Be the first to like this

No Downloads
Views
Total views
1,026
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • In deze presentatie wil ik jullie enthousiast maken over Ruby on Rails, een nieuwe meer agile manier van webdevelopment. Deze presentatie is eigenlijk veel te kort om goed uit te kunnen uitleggen wat Rails is en waarom het zo bijzonder is, daarvoor moet je eigenlijk zelf eens een keer met met Rails spelen (pas wel op want voor je het weet ben je verslaafd! ;)
  • Ruby On Rails - webdevelopment wordt weer leuk!

    1. 1. Ruby on Rails Webdevelopment wordt weer leuk!
    2. 2. 2006
    3. 4. <ul><li>Ruby </li></ul>
    4. 5. Yukihiro Matsumoto Japan, 1993 …
    5. 6. <ul><li>Ruby </li></ul><ul><li>= </li></ul><ul><li>object oriented </li></ul>
    6. 7. <ul><li>Class. class </li></ul><ul><li>Time.now - 1 .day </li></ul><ul><li>5.times {print “Hello world!&quot; } </li></ul><ul><li>[ 'toast','cheese' , 'wine' ]. each { </li></ul><ul><li> |food| print food.capitalize } </li></ul>
    7. 8. <ul><li>Ruby </li></ul><ul><li>= </li></ul><ul><li>interpreted </li></ul>
    8. 9. <ul><li>Ruby </li></ul><ul><li>= </li></ul><ul><li>dynamic </li></ul>
    9. 10. metaprogramming / DSL’s
    10. 11. metaprogramming / DSL’s
    11. 12. <ul><li>Filosofie achter Rails </li></ul>
    12. 13. <ul><li>productiviteit </li></ul>
    13. 14. <ul><li>happiness </li></ul><ul><li>productiviteit </li></ul>
    14. 15. Optimize for programmer happiness
    15. 16. <ul><li>flow </li></ul><ul><li>happiness </li></ul><ul><li>productiviteit </li></ul>
    16. 18. Flow = Geen besef van tijd en jezelf meer
    17. 19. Flow = Directe feedback
    18. 20. programmeur
    19. 22. programmeur
    20. 23. <ul><li>Rails: </li></ul><ul><li>Change = instant </li></ul>
    21. 24. Flow = Balans vaardigheden en uitdaging
    22. 26. Full-stack MVC framework
    23. 27. Principes <ul><li>Convention over configuration </li></ul><ul><li>Less and more beautiful code </li></ul><ul><li>DRY </li></ul>
    24. 28. Flow = Intrinsieke motivatie
    25. 29. <ul><li>flow </li></ul><ul><li>happiness </li></ul><ul><li>productiviteit </li></ul>
    26. 30. <ul><li>Demo </li></ul><ul><li>(eindelijk …  ) </li></ul>
    27. 31. project structuur (conventions over configuration)
    28. 32. <ul><li>Datamodel demo </li></ul>Comments body created_at 1 0..* Article title body created_at
    29. 33. Java Model (Hibernate) <hibernate-mapping> <class name=&quot;models.Article&quot; table=“ARTICLES&quot;> <id name=&quot;id&quot; column=&quot;id&quot; type=&quot;java.lang.Long&quot;> <generator class=&quot;identity&quot;/> </id> <property name=“body &quot; column=“body&quot;/> <property name=“description“ column=“description&quot;/> <set name=“comments&quot; table=“COMMENTS”> <key column=&quot;id&quot;/> <one-to-many class=&quot;models.Comments&quot;/> </set> </class> </hibernate-mapping> Article.hbm.xml public class Article{ private Long id; private String title; private String body; private Set comments; public Set getComments() { return markets; } public void setComments(Set comments){ this.comments = comments; } // getters en setters van andere // properties } Article.java + configuratie (o.a. Hibernate)
    30. 34. Rails model beautiful, agile ...
    31. 36. migrations (tegen de migraine)
    32. 37. unit tests (zijn ingebakken)
    33. 38. Scaffolding Sagrada Familia (Gaudi), Barcelona
    34. 39. <ul><li>Controller </li></ul><ul><li>articles _controller.rb: </li></ul><ul><li>class Articles Controller < ApplicationController </li></ul><ul><li> def show </li></ul><ul><li> @article = Article.find(params[ :id ]) </li></ul><ul><li> end </li></ul><ul><li>end </li></ul>URL http://localhost:3000/ articles / show / 2 View app/views/ articles / show .rhtml
    35. 40. validations (when you do it, do it safe)
    36. 41. Ajax (it’s magic)
    37. 42. RESTful webservices (constraints are liberating)
    38. 43. <ul><li>Maar? </li></ul>
    39. 44. <ul><li>Schaalt het? </li></ul>
    40. 46. > 500.000 requests / dag > 100.000 users > Draait op 3 servers
    41. 49. 11000 requests / seconde! Rails schaalt toch niet?
    42. 50. 11000 requests / seconde! Niet out-of-the box 11000 request / seconde, maar wel met enige aanpassingen!
    43. 51. <ul><li>Iets voor Wisdom? </li></ul><ul><li>( ik denk het wel  ) </li></ul>
    44. 52. Rails sweetspots (volgens de heren @ThoughtWorks …) <ul><li>Web 2.0 applications that make use of REST and/or AJAX designs </li></ul><ul><li>Small to medium web-based applications with aggressive time-to-market goals </li></ul><ul><li>Low-cost internal prototypes and pilot applications </li></ul><ul><li>So-called &quot;soft layer&quot; APIs on hardened transactional systems </li></ul>
    45. 53. <ul><li>Vragen? </li></ul>

    ×