Pourquoi rails est génial? (version longue)

1,861 views

Published on

Camille Roux vous explique pourquoi Ruby et Ruby on Rails peuvent être un choix fantastique pour vos prochains projets. Pendant une heure vous aurez le plaisir de faire un tour en orbite autour de la planète Ruby. Après un bref voyage dans le temps pour comprendre son histoire, vous découvrirez ce qui rend ce monde si magique.

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

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

No notes for slide

Pourquoi rails est génial? (version longue)

  1. 1. Pourquoi Rails est génial? D'un point de vue non technique! 9 juillet 2010
  2. 2. Qui parle? • Camille Roux • 25 ans, Sophia Antipolis • +1 an de dev Ruby on Rails • +3 ans de dev web (WebObjects, Flex, PHP...) • http://camilleroux.com • camilleroux
  3. 3. Qu'est-ce qu'un bon framework web?
  4. 4. Coût
  5. 5. Productivité Agile Hébergement Innovant Déploiement Performance Moderne Licence Evolution Recrutement Actif Confort Rapide Coût Bibliothèques Utilisé IDE Bonnes pratiques Communauté Outils Référencement Plugins Open Source Architecture Sécurité
  6. 6. Ruby Quoi : langage de programmation interprété, orienté objet et multi-paradigme Licence : Libre - Licence Ruby et GPL OS : Multiplate-forme Apparu en : 1995 Créateur :Yukihiro Matsumoto (aka "Matz")
  7. 7. Multiples implémentations • Ruby • JRuby • MacRuby • Rubinius • ...
  8. 8. +14 000 gems sur Rubygems
  9. 9. +185 000 projets Ruby sur Github
  10. 10. 10eme Position au classement TIOBE (juin 2009)
  11. 11. Often people, especially computer engineers, focus on the machines.They think, "By doing this, the machine will run faster. By doing this, the machine will run more effectively. By doing this, the machine will something something something." They are focusing on machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters.They are the slaves. Yukihiro Matsumoto
  12. 12. Ruby on Rails Quoi : framework d'application web reposant sur le langage Ruby Autres noms : RoR, Rails Licence : Libre - MIT Apparu en : 2004 Créateur : David Heinemeier Hansson (aka “DHH”) et quelques autres (Rails Core Team)
  13. 13. Philosophie
  14. 14. Convention over Configuration
  15. 15. DRY (Don't Repeat Yourself)
  16. 16. Agile
  17. 17. !Personnes et interaction plutôt que processus et outils
  18. 18. Logiciel fonctionnel plutôt que documentation complète
  19. 19. Collaboration avec le client plutôt que négociation de contrat
  20. 20. Réagir au changement plutôt que suivre un plan
  21. 21. Awesome When you thought it couldn't get any awesomer.
  22. 22. Structure
  23. 23. Migrations
  24. 24. Active Record
  25. 25. Scaffold
  26. 26. Environnements
  27. 27. Sécurité
  28. 28. Javascript
  29. 29. Cache
  30. 30. REST
  31. 31. REST - Avantages • Structure des URL propre et logique • ex : http://veniu.com/users/1 • Stateless • Consomme moins de mémoire • "Scalable" • Repose sur HTTP (notamment les opérations : GET, POST, PUT et DELETE) • Application simple à maintenir
  32. 32. Tests
  33. 33. BDD
  34. 34. Cucumber Fonctionnalité: Addition Afin de gagner du temps lors du calcul de la facture En tant que commerçant Je souhaite pouvoir faire une addition   Plan du Scénario: Addition de deux nombres Soit une calculatrice     Et que j'entre <a> pour le premier nombre     Et que je tape sur la touche "+"     Et que j'entre <b> pour le second nombre     Lorsque je tape sur la touche "="     Alors le résultat affiché doit être <somme>     Exemples:       | a | b | somme |       | 2 | 2 | 4 |       | 2 | 3 | 5 |
  35. 35. RAILS 3 • Rails 3 = Rails 2 + Merb • Modularité • Bundler • Performance • HTML 5 • ...
  36. 36. Ruby est lent non? • Comme Python et PHP • JRuby, Ruby 1.9/2.0... • La vitesse d'exécution, vraiment important ? • Vitesse de développement • Fiabilité • Maintenabilité
  37. 37. Un plugin/une gem pour tout...
  38. 38. Tâches de fond Upload de fichiers Hiérarchies Paiement en ligne Authentification NoSQL Indexation Un plugin/une gem BDD pour tout... Pagination Geolocalisation Cache Twitter Parsing Optimisation Facebook
  39. 39. IDE
  40. 40. IDE
  41. 41. RubyMine 2.0 • Debugger • Refactoring automatisé • Analyse du code à la volée + inférence du type • Code completion • Intégration de multiples VCS (Git, SVN...)
  42. 42. Qui utilise Ruby on Rails?
  43. 43. Scribd 39 700 000 Twitter 30 000 000 Hulu 24 900 000 WhitePages Justin.tv 21 800 000 19 300 000 Visiteurs uniques / mois
  44. 44. High Profile Organisations using Rails - WorkingWithRails.com
  45. 45. Des outils extraordinaires
  46. 46. Github
  47. 47. New Relic
  48. 48. Avantages • Installation en quelques minutes • Ruby, JRuby, Java • Prix
  49. 49. Hébergement
  50. 50. Les classiques
  51. 51. Mutualisé VPS Les classiques Dédié Cloud Serveurs persos
  52. 52. Engine Yard • Repose sur Amazon EC2 et S3 • Ajout/suppression de machines à chaud • Déploiement automatique à partir du code source (Git) • Clonage d'application • Monitoring et alerte • Backup
  53. 53. Architecture d'EY Environnement Serveurs d'application Applications load balancer + serveur serveur serveur serveur serveur App serveur web web web web web web App Serveurs de bases de données Serveurs utilitaires master slave slave utility utility utility App
  54. 54. Heroku 1 Je fais mon application Rails en utilisant Git
  55. 55. Heroku 1 Je fais mon application Rails en utilisant Git 2 2 lignes de commandes 00:01:00
  56. 56. Heroku 1 Je fais mon application Rails en utilisant Git 2 2 lignes de commandes 00:01:00 3
  57. 57. En pratique • Créer une application Rails • Versionner sous Git • $ heroku create Git push heroku master git commit sophiaconf2010 deploy • $ git push heroku master
  58. 58. Add-ons
  59. 59. Amazon RDS Websolr SSL Zerigo DNS Sendgrid Apigee for Twitter Panda Stream Bundles New Relic Cloudant Add-ons MongoHQ Cron Moonshado SMS Exceptional Custom domains Memcache Deploy hooks LogWorm
  60. 60. +70 000 applications déployées
  61. 61. Les "switchers"
  62. 62. Backupify was originally a photo backup side project, and Zend had a good Flickr library, so we started in Zend. Rob May, founder
  63. 63. Iterating quickly was!difficult.When Matt joined Backupify, he gave me a Ruby on Rails!crash- course[...]. Seriously, although I’ve read!the blogs, and seen the screencasts, I wasn’t truly!impressed with Rails until I started working with it. Ruby is easy to!understand and Rails provides a clear level of organization/ convention!that’s easy to maintain. Ben Thomas,VP of Product Development
  64. 64. • Architecture système automatisée • Intégration continue • "Rubyists are amazingly prolific" • "Lot of innovation in the Ruby space"
  65. 65. YP.com en quelques chiffres • 23 millions visiteurs uniques/mois • 2 millions recherches/jours • +48 millions requêtes/jours • +1500 requêtes/s • 30 Mbit/s (200 Mbit/s d'Akamai)
  66. 66. AVANT
  67. 67. • Java/EJB3 • Problèmes de design de la plateforme • Design fortement basé sur les sessions pas "horizontally scalable" • 125 000 lignes de code • Aucun test • Difficulté à ajouter de nouvelles fonctionnalités • Manque de contrôle sur la structure des URL
  68. 68. APRES
  69. 69. • Performance et stabilité acceptable • Nombre de serveurs identique • - de 20 000 lignes de code (avec les tests!) • Pas de sessions (stateless)
  70. 70. • Migration faite en 2006-2007 • Conception => mise en production : 1 an • Développement : 3 mois • Terminé dans les temps • Jamais plus de 5 développeurs
  71. 71. Ca bouge!
  72. 72. Ruby usage has grown 40% among North American developers from 2008 to 2009 Evans Data
  73. 73. + 400 % en 5 ans développeurs Ruby (2008 - 2013) Gartner Group, mars 2008
  74. 74. Levées de fond • $10M - Heroku - Mai 2010 • $19M - Engine Yard - Octobre 2009 • $6M - New Relic - Novembre 2008 • $15M - Engine Yard - Juillet 2008 • $3M - Heroku - Mai 2008
  75. 75. Alors pourquoi Rails ? • Un langage • Un framework • Une communauté • Des outils • ...
  76. 76. Citations
  77. 77. Rather than it being top-down the way Java was, Rails has grown up out of the grass roots of the programming community. Rails allows you to innovate and iterate so rapidly that it has accelerated the rate of innovations. Rails is making it fun to program Web apps again. Java is not fun. Happy programmers are productive programmers. Mitch Lasky
  78. 78. Ruby on Rails will replace Java as the programming language and platform with dominant market share. Java is vulnerable because alternatives such as PHP have proven viable for application development with dramatically lower costs. Christian Sepulveda, Pivotal Labs
  79. 79. We definitely wouldn't change our choice of framework - Rails was invaluable for rapid application development, and I think we've pretty much proven that two guys without a lot of scaling experience can scale a Rails app up.The whole 'but does Rails scale?' discussion sounds like a bunch of masturbation - the point is moot. Siqi Chen and Alexander Le, Friend for Sale
  80. 80. Ruby rocks. It's a fun language and allowed them to develop quickly and release the site twice a day during beta. Casey Forbes, creator of Ravelry
  81. 81. Cadeau ?
  82. 82. 30 jours RPM Gold Sophia2010 (sensible à la casse)
  83. 83. ? www.camilleroux.com contact@camilleroux.com
  84. 84. Crédits photos • http://www.flickr.com/photos/kandyjaxx/2012468692/ • http://www.flickr.com/photos/kh-67/3564168600/ • http://www.flickr.com/photos/ecstaticist/2589723846/

×