SlideShare uma empresa Scribd logo
1 de 108
Pourquoi Rails est
                 génial?
                 D'un point de vue non technique!




9 juillet 2010
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
Qu'est-ce qu'un bon
 framework web?
Coût
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é
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")
Multiples
     implémentations
• Ruby
• JRuby
• MacRuby
• Rubinius
• ...
+14 000
gems sur Rubygems
+185 000
projets Ruby sur Github
10eme
Position au classement
  TIOBE (juin 2009)
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
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)
Philosophie
Convention
   over
Configuration
DRY
(Don't Repeat Yourself)
Agile
!Personnes et
interaction plutôt que
  processus et outils
Logiciel fonctionnel
      plutôt que
documentation complète
Collaboration avec le
   client plutôt que
négociation de contrat
Réagir au changement
plutôt que suivre un plan
Awesome
When you thought it couldn't get any awesomer.
Structure
Migrations
Active Record
Scaffold
Environnements
Sécurité
Javascript
Cache
REST
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
Tests
BDD
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     |
RAILS 3
• Rails 3 = Rails 2 + Merb
• Modularité
• Bundler
• Performance
• HTML 5
• ...
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é
Un plugin/une gem
   pour tout...
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
IDE
IDE
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...)
Qui utilise
Ruby on Rails?
Scribd
39 700 000
               Twitter
            30 000 000
    Hulu
24 900 000 WhitePages
   Justin.tv
             21 800 000
19 300 000
                         Visiteurs uniques / mois
High Profile Organisations using Rails - WorkingWithRails.com
Des outils
extraordinaires
Github
New Relic
Avantages

• Installation en quelques minutes
• Ruby, JRuby, Java
• Prix
Hébergement
Les classiques
Mutualisé
   VPS


        Les classiques
Dédié
                                Cloud

         Serveurs persos
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
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
Heroku
1   Je fais mon application
    Rails en utilisant Git
Heroku
1   Je fais mon application
    Rails en utilisant Git

                    2   2 lignes de commandes
                        00:01:00
Heroku
1   Je fais mon application
    Rails en utilisant Git

                    2   2 lignes de commandes
                        00:01:00
                                         3
En pratique

•   Créer une application Rails

•   Versionner sous Git

•   $ heroku create               Git push heroku master   git commit
    sophiaconf2010
                                         deploy

•   $ git push heroku master
Add-ons
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
+70 000
applications déployées
Les "switchers"
Backupify was originally a photo
backup side project, and Zend
had a good Flickr library, so we
started in Zend.

             Rob May, founder
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
•   Architecture système automatisée

•   Intégration continue

•   "Rubyists are amazingly prolific"

•   "Lot of innovation in the Ruby space"
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)
AVANT
• 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
APRES
• Performance et stabilité acceptable
• Nombre de serveurs identique
• - de 20 000 lignes de code (avec les tests!)
• Pas de sessions (stateless)
• 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
Ca bouge!
Ruby usage has grown 40%
    among North American
developers from 2008 to 2009
                      Evans Data
+ 400 % en 5 ans
 développeurs Ruby (2008 - 2013)




                  Gartner Group, mars 2008
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
Alors pourquoi Rails ?

• Un langage
• Un framework
• Une communauté
• Des outils
• ...
Citations
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
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
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
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
Cadeau ?
30 jours RPM Gold


Sophia2010 (sensible à la casse)
?       www.camilleroux.com
    contact@camilleroux.com
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/

Mais conteúdo relacionado

Semelhante a Pourquoi rails est génial? (version longue)

Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Quentin Frémeaux
 
Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?Quentin Adam
 
De l'open source à l'open API avec Restlet
De l'open source à l'open API avec RestletDe l'open source à l'open API avec Restlet
De l'open source à l'open API avec RestletJerome Louvel
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent Biret
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...ENSIBS
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiAZUG FR
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiSamir Arezki ☁
 
Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)Vincent Biret
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)Restlet
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapresLaurent Tardif
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 
XebiCon'17 : Serverless is the new back - Jérémy Pinsolle et Gérôme Egron
XebiCon'17 : Serverless is the new back - Jérémy Pinsolle et Gérôme EgronXebiCon'17 : Serverless is the new back - Jérémy Pinsolle et Gérôme Egron
XebiCon'17 : Serverless is the new back - Jérémy Pinsolle et Gérôme EgronPublicis Sapient Engineering
 
Tk06 Real Time Web Avec Adobe Flex Fr
Tk06 Real Time Web Avec Adobe Flex FrTk06 Real Time Web Avec Adobe Flex Fr
Tk06 Real Time Web Avec Adobe Flex FrValtech
 
Meetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureMeetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureSamir Arezki ☁
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...Jasmine Conseil
 
What’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontWhat’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontZenika
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Microsoft
 

Semelhante a Pourquoi rails est génial? (version longue) (20)

Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)
 
Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?Parisweb - javascript server side - par où commencer ?
Parisweb - javascript server side - par où commencer ?
 
De l'open source à l'open API avec Restlet
De l'open source à l'open API avec RestletDe l'open source à l'open API avec Restlet
De l'open source à l'open API avec Restlet
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
 
Retour d'experience projet AngularJS
Retour d'experience projet AngularJSRetour d'experience projet AngularJS
Retour d'experience projet AngularJS
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
 
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir ArezkiGab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
Gab 2017 Lyon - les strategies d'intégration avec Azure iPaaS - Samir Arezki
 
Nouveaux apis
Nouveaux apisNouveaux apis
Nouveaux apis
 
Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapres
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
XebiCon'17 : Serverless is the new back - Jérémy Pinsolle et Gérôme Egron
XebiCon'17 : Serverless is the new back - Jérémy Pinsolle et Gérôme EgronXebiCon'17 : Serverless is the new back - Jérémy Pinsolle et Gérôme Egron
XebiCon'17 : Serverless is the new back - Jérémy Pinsolle et Gérôme Egron
 
Tk06 Real Time Web Avec Adobe Flex Fr
Tk06 Real Time Web Avec Adobe Flex FrTk06 Real Time Web Avec Adobe Flex Fr
Tk06 Real Time Web Avec Adobe Flex Fr
 
Meetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureMeetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec Azure
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
What’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontWhat’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. Darmont
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 

Mais de Camille Roux

La boucle à gagner du temps
La boucle à gagner du tempsLa boucle à gagner du temps
La boucle à gagner du tempsCamille Roux
 
Gagner sa vie sans "travailler"
Gagner sa vie sans "travailler"Gagner sa vie sans "travailler"
Gagner sa vie sans "travailler"Camille Roux
 
Lean startup (méthode Running Lean)
Lean startup (méthode Running Lean)Lean startup (méthode Running Lean)
Lean startup (méthode Running Lean)Camille Roux
 
Travailler autrement
Travailler autrementTravailler autrement
Travailler autrementCamille Roux
 
Panorama des exonérations et des aides à l'emploi
Panorama des exonérations et des aides à l'emploiPanorama des exonérations et des aides à l'emploi
Panorama des exonérations et des aides à l'emploiCamille Roux
 
Le lean startup, ce n'est pas que des canvas !
Le lean startup, ce n'est pas que des canvas !Le lean startup, ce n'est pas que des canvas !
Le lean startup, ce n'est pas que des canvas !Camille Roux
 
Recruter un (bon) développeur - Blend Conférence
Recruter un (bon) développeur - Blend ConférenceRecruter un (bon) développeur - Blend Conférence
Recruter un (bon) développeur - Blend ConférenceCamille Roux
 
Comment paraître sexy auprès des développeurs ?
Comment paraître sexy auprès des développeurs ?Comment paraître sexy auprès des développeurs ?
Comment paraître sexy auprès des développeurs ?Camille Roux
 
Moins on code, mieux on se porte !
Moins on code, mieux on se porte !Moins on code, mieux on se porte !
Moins on code, mieux on se porte !Camille Roux
 
Dissection d'un développeur Ruby
Dissection d'un développeur RubyDissection d'un développeur Ruby
Dissection d'un développeur RubyCamille Roux
 
Human Talks - Introduction
Human Talks - IntroductionHuman Talks - Introduction
Human Talks - IntroductionCamille Roux
 
Recruter et travailler avec un développeur
Recruter et travailler avec un développeurRecruter et travailler avec un développeur
Recruter et travailler avec un développeurCamille Roux
 
Comment nous avons développé RubyLive.fr en un week-end
Comment nous avons développé RubyLive.fr en un week-endComment nous avons développé RubyLive.fr en un week-end
Comment nous avons développé RubyLive.fr en un week-endCamille Roux
 
Tester ses idées en quelques heures
Tester ses idées en quelques heuresTester ses idées en quelques heures
Tester ses idées en quelques heuresCamille Roux
 
Ne perdez plus votre temps, testez vos idées en quelques heures !
Ne perdez plus votre temps, testez vos idées en quelques heures !Ne perdez plus votre temps, testez vos idées en quelques heures !
Ne perdez plus votre temps, testez vos idées en quelques heures !Camille Roux
 
Comment tester et améliorer son idée en un minimum de temps ? - Devoxx
Comment tester et améliorer son idée en un minimum de temps ?  - DevoxxComment tester et améliorer son idée en un minimum de temps ?  - Devoxx
Comment tester et améliorer son idée en un minimum de temps ? - DevoxxCamille Roux
 
[Startup Weekend] Conseil pour les présentations
[Startup Weekend] Conseil pour les présentations[Startup Weekend] Conseil pour les présentations
[Startup Weekend] Conseil pour les présentationsCamille Roux
 
Tester son idée en quelques heures
Tester son idée en quelques heuresTester son idée en quelques heures
Tester son idée en quelques heuresCamille Roux
 
HireForMe : Projet présenté au Startup Weekend Lyon 2
HireForMe : Projet présenté au Startup Weekend Lyon 2HireForMe : Projet présenté au Startup Weekend Lyon 2
HireForMe : Projet présenté au Startup Weekend Lyon 2Camille Roux
 
10 idées pour dynamiser la communauté Ruby en France
10 idées pour dynamiser la communauté Ruby en France10 idées pour dynamiser la communauté Ruby en France
10 idées pour dynamiser la communauté Ruby en FranceCamille Roux
 

Mais de Camille Roux (20)

La boucle à gagner du temps
La boucle à gagner du tempsLa boucle à gagner du temps
La boucle à gagner du temps
 
Gagner sa vie sans "travailler"
Gagner sa vie sans "travailler"Gagner sa vie sans "travailler"
Gagner sa vie sans "travailler"
 
Lean startup (méthode Running Lean)
Lean startup (méthode Running Lean)Lean startup (méthode Running Lean)
Lean startup (méthode Running Lean)
 
Travailler autrement
Travailler autrementTravailler autrement
Travailler autrement
 
Panorama des exonérations et des aides à l'emploi
Panorama des exonérations et des aides à l'emploiPanorama des exonérations et des aides à l'emploi
Panorama des exonérations et des aides à l'emploi
 
Le lean startup, ce n'est pas que des canvas !
Le lean startup, ce n'est pas que des canvas !Le lean startup, ce n'est pas que des canvas !
Le lean startup, ce n'est pas que des canvas !
 
Recruter un (bon) développeur - Blend Conférence
Recruter un (bon) développeur - Blend ConférenceRecruter un (bon) développeur - Blend Conférence
Recruter un (bon) développeur - Blend Conférence
 
Comment paraître sexy auprès des développeurs ?
Comment paraître sexy auprès des développeurs ?Comment paraître sexy auprès des développeurs ?
Comment paraître sexy auprès des développeurs ?
 
Moins on code, mieux on se porte !
Moins on code, mieux on se porte !Moins on code, mieux on se porte !
Moins on code, mieux on se porte !
 
Dissection d'un développeur Ruby
Dissection d'un développeur RubyDissection d'un développeur Ruby
Dissection d'un développeur Ruby
 
Human Talks - Introduction
Human Talks - IntroductionHuman Talks - Introduction
Human Talks - Introduction
 
Recruter et travailler avec un développeur
Recruter et travailler avec un développeurRecruter et travailler avec un développeur
Recruter et travailler avec un développeur
 
Comment nous avons développé RubyLive.fr en un week-end
Comment nous avons développé RubyLive.fr en un week-endComment nous avons développé RubyLive.fr en un week-end
Comment nous avons développé RubyLive.fr en un week-end
 
Tester ses idées en quelques heures
Tester ses idées en quelques heuresTester ses idées en quelques heures
Tester ses idées en quelques heures
 
Ne perdez plus votre temps, testez vos idées en quelques heures !
Ne perdez plus votre temps, testez vos idées en quelques heures !Ne perdez plus votre temps, testez vos idées en quelques heures !
Ne perdez plus votre temps, testez vos idées en quelques heures !
 
Comment tester et améliorer son idée en un minimum de temps ? - Devoxx
Comment tester et améliorer son idée en un minimum de temps ?  - DevoxxComment tester et améliorer son idée en un minimum de temps ?  - Devoxx
Comment tester et améliorer son idée en un minimum de temps ? - Devoxx
 
[Startup Weekend] Conseil pour les présentations
[Startup Weekend] Conseil pour les présentations[Startup Weekend] Conseil pour les présentations
[Startup Weekend] Conseil pour les présentations
 
Tester son idée en quelques heures
Tester son idée en quelques heuresTester son idée en quelques heures
Tester son idée en quelques heures
 
HireForMe : Projet présenté au Startup Weekend Lyon 2
HireForMe : Projet présenté au Startup Weekend Lyon 2HireForMe : Projet présenté au Startup Weekend Lyon 2
HireForMe : Projet présenté au Startup Weekend Lyon 2
 
10 idées pour dynamiser la communauté Ruby en France
10 idées pour dynamiser la communauté Ruby en France10 idées pour dynamiser la communauté Ruby en France
10 idées pour dynamiser la communauté Ruby en France
 

Pourquoi rails est génial? (version longue)

  • 1. Pourquoi Rails est génial? D'un point de vue non technique! 9 juillet 2010
  • 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. Qu'est-ce qu'un bon framework web?
  • 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.
  • 7. 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")
  • 8. Multiples implémentations • Ruby • JRuby • MacRuby • Rubinius • ...
  • 9. +14 000 gems sur Rubygems
  • 10. +185 000 projets Ruby sur Github
  • 11. 10eme Position au classement TIOBE (juin 2009)
  • 12. 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
  • 13.
  • 14. 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)
  • 16. Convention over Configuration
  • 18. Agile
  • 19. !Personnes et interaction plutôt que processus et outils
  • 20. Logiciel fonctionnel plutôt que documentation complète
  • 21. Collaboration avec le client plutôt que négociation de contrat
  • 22. Réagir au changement plutôt que suivre un plan
  • 23. Awesome When you thought it couldn't get any awesomer.
  • 31. Cache
  • 32. REST
  • 33. 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
  • 34. Tests
  • 35. BDD
  • 36. 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 |
  • 37. RAILS 3 • Rails 3 = Rails 2 + Merb • Modularité • Bundler • Performance • HTML 5 • ...
  • 38.
  • 39. 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é
  • 40. Un plugin/une gem pour tout...
  • 41. 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
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51. IDE
  • 52. IDE
  • 53. 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...)
  • 55.
  • 56.
  • 57. Scribd 39 700 000 Twitter 30 000 000 Hulu 24 900 000 WhitePages Justin.tv 21 800 000 19 300 000 Visiteurs uniques / mois
  • 58. High Profile Organisations using Rails - WorkingWithRails.com
  • 61.
  • 63.
  • 64.
  • 65.
  • 66. Avantages • Installation en quelques minutes • Ruby, JRuby, Java • Prix
  • 69. Mutualisé VPS Les classiques Dédié Cloud Serveurs persos
  • 70. 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
  • 71. 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
  • 72.
  • 73. Heroku 1 Je fais mon application Rails en utilisant Git
  • 74. Heroku 1 Je fais mon application Rails en utilisant Git 2 2 lignes de commandes 00:01:00
  • 75. Heroku 1 Je fais mon application Rails en utilisant Git 2 2 lignes de commandes 00:01:00 3
  • 76. En pratique • Créer une application Rails • Versionner sous Git • $ heroku create Git push heroku master git commit sophiaconf2010 deploy • $ git push heroku master
  • 77.
  • 78.
  • 80. 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
  • 83.
  • 84. Backupify was originally a photo backup side project, and Zend had a good Flickr library, so we started in Zend. Rob May, founder
  • 85. 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
  • 86. Architecture système automatisée • Intégration continue • "Rubyists are amazingly prolific" • "Lot of innovation in the Ruby space"
  • 87.
  • 88. 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)
  • 89. AVANT
  • 90. • 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
  • 91. APRES
  • 92. • Performance et stabilité acceptable • Nombre de serveurs identique • - de 20 000 lignes de code (avec les tests!) • Pas de sessions (stateless)
  • 93. • 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
  • 95. Ruby usage has grown 40% among North American developers from 2008 to 2009 Evans Data
  • 96. + 400 % en 5 ans développeurs Ruby (2008 - 2013) Gartner Group, mars 2008
  • 97. 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
  • 98. Alors pourquoi Rails ? • Un langage • Un framework • Une communauté • Des outils • ...
  • 100. 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
  • 101. 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
  • 102. 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
  • 103. 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
  • 104.
  • 106. 30 jours RPM Gold Sophia2010 (sensible à la casse)
  • 107. ? www.camilleroux.com contact@camilleroux.com
  • 108. 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/