Introduction à Ruby on Rails

1 315 vues

Publié le

Introduction à Ruby on Rails donnée durant la réunion mensuelle de décembre 2011 du ElsassJUG (Java User Group alsacien). C'était leur cadeau de noël en somme.

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 315
Sur SlideShare
0
Issues des intégrations
0
Intégrations
25
Actions
Partages
0
Téléchargements
12
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Introduction à Ruby on Rails

  1. 1. Yann Klis, ElsassJUG, 14 décembre 2011 Introduction à Ruby on Rails
  2. 2. Présentation <ul><li>Yann Klis
  3. 3. Etudes à Strasbourg (IUP+DESS)
  4. 4. Grandes entreprises, start'up, SSII
  5. 5. Fondateur de Novelys (Strasbourg) en 2005
  6. 6. Spécialisée dans le développement d'applications web
  7. 7. Utilise Ruby et Rails depuis mars 2005 </li></ul>
  8. 8. Plan <ul><li>Généralités sur Ruby
  9. 9. Généralités sur Ruby on Rails
  10. 10. Démo
  11. 11. Perspectives </li></ul>
  12. 12. Ruby <ul><li>1995
  13. 13. Yukihiro “Matz” Matsumoto </li></ul>
  14. 14. Ruby <ul><li>Interprété
  15. 15. Multiplate-forme
  16. 16. Orienté Objet P ur (introspection)
  17. 17. Basé sur des messages
  18. 18. Duck Typing </li></ul>
  19. 19. Ruby class Klass def hello(*args) &quot;Hello &quot; + args.join(' ') end end k = Klass.new k.hello([&quot;gentle&quot;, &quot;readers&quot;]) -> &quot;Hello gentle readers&quot; k.hello(&quot;gentle&quot;, &quot;readers&quot;) -> &quot;Hello gentle readers&quot; k.hello &quot;gentle&quot;, &quot;readers&quot; -> &quot;Hello gentle readers&quot; k.send :hello, &quot;gentle&quot;, &quot;readers&quot; -> &quot;Hello gentle readers&quot; Un langage basé sur des messages
  20. 20. Ruby <ul><li>Interprété
  21. 21. Multiplate-forme
  22. 22. Orienté Objet P ur (introspection)
  23. 23. Basé sur des messages
  24. 24. Duck Typing
  25. 25. Dynamique </li></ul>
  26. 26. Ruby class Printing def method_missing(m, *args) if (name = /^test_(.+)$/.match(m.id2name)) print name[1] end end end print = Printing.new print.test_hello() print.test_haha() Un langage dynamique
  27. 27. Ruby <ul><li>Interprété
  28. 28. Multiplate-forme
  29. 29. Orienté Objet P ur (introspection)
  30. 30. Basé sur des messages
  31. 31. Duck Typing
  32. 32. Dynamique
  33. 33. Blocks (Closures) </li></ul>
  34. 34. Ruby ['pim', 'pam', 'poum'].each { |perso| print perso.capitalize } ['pim', 'pam', 'poum'].each { |perso| print perso.capitalize } %w(pim pam poum).each { |perso| print perso.capitalize } Block et itérateur
  35. 35. Ruby <ul><li>Interprété
  36. 36. Multiplate-forme
  37. 37. Orienté Objet P ur (introspection)
  38. 38. Basé sur des messages
  39. 39. Duck Typing
  40. 40. Dynamique
  41. 41. Blocks (Closures)
  42. 42. Esthétique et expressif </li></ul>
  43. 43. Ruby 5.times { print &quot;Odelay!&quot; } Exit unless &quot;restaurant&quot;.include? &quot;aura&quot; ['toast', 'cheese', 'wine'].each { |food| print food.capitalize } Un langage esthétique et expressif
  44. 44. Ruby } Méta-programmation et Langages de domaine (DSL) <ul><li>Interprété
  45. 45. Multiplate-forme
  46. 46. Orienté Objet P ur (introspection)
  47. 47. Basé sur des messages
  48. 48. Duck Typing
  49. 49. Dynamique
  50. 50. Blocks (Closures)
  51. 51. Esthétique et expressif </li></ul>
  52. 52. Rack et Rake <ul><li>Rack : middleware de jonction entre serveurs web et framework Ruby
  53. 53. Rake : make en Ruby </li></ul>
  54. 54. Ruby on Rails <ul><li>2004
  55. 55. David “DHH” Heinemeier Hansson </li></ul>
  56. 56. Ruby on Rails <ul><li>Ruby on Rails, Rails, RoR : framework web
  57. 57. Design Pattern: MVC (Model View Controller), ORM (Object Relational Mapping), etc.
  58. 58. &quot;Don't Repeat Yourself&quot; (DRY)
  59. 59. “ Convention over Configuration”
  60. 60. Plusieurs composants débrayables : ActiveRecord, Action Pack, Action Mailer, jQuery/CoffeeScript
  61. 61. Serveur web intégré
  62. 62. RESTful
  63. 63. Opiniated </li></ul>
  64. 64. It's démo time...
  65. 65. Rub ies <ul><li>Ruby MRI 1.8.7
  66. 66. Ruby MRI 1.9.3
  67. 67. JRuby
  68. 68. Rubinius
  69. 69. (Maglev)
  70. 70. (IronRuby) </li></ul>
  71. 71. Rub ies <ul><li>Gérer ses versions de Ruby </li><ul><li>ruby-build
  72. 72. rbenv / rvm </li></ul></ul>
  73. 73. Full stack <ul><li>Serveur web </li><ul><li>nginx
  74. 74. Apache </li></ul><li>Serveur applicatif </li><ul><li>passenger, thin, unicorn </li></ul><li>Base de données </li><ul><li>MySQL, PostgreSQL, Oracle, MongoDB, Redis, etc </li></ul></ul>
  75. 75. Avantages et inconvénients...
  76. 76. La Communauté les gems, les conférences, les articles de blog, les bonnes pratiques (tests), toujours à la pointe, Github/Heroku, etc.
  77. 77. La Documentation http://api.rubyonrails.org, http://guides.rubyonrails.org , les livres, les screencasts, les articles de blog, etc.
  78. 78. Le monde Ruby/Rails bouge vite Le monde Ruby/Rails est très vaste Veille included, Rails 3.1.X, connexions avec Javascript, etc
  79. 79. Les kikoololers (1) Rails sai tro jainial
  80. 80. Les kikoololers (2) “On est 3 personnes avec 15 ans d'expérience dans le marketing de haut vol avec une super idée génialissime dont tout le monde dit que ça va arracher et on cherche un développeur pour nous développer tout ça. Il aura des parts et il encadrera une équipe de stagiaires.”
  81. 83. Merci de votre attention ! [email_address] @yannski

×