SlideShare une entreprise Scribd logo
1  sur  47
Thinking Rails
par Alexandre Strzelewicz
Fondateur du Web Lab d‟Epitech
@strzel_a
p3ee.com




I - Ruby


II – Rails
p3ee.com




Posons les bases
p3ee.com




            Ruby VS Rails

Ruby = langage de programmation

Rails = framework
• Se focaliser sur la couche métier
• Augmenter la productivité
p3ee.com




                 Langage interprété
                 Multiplateforme

                 License Libre

                 Apparu en 1995
                 Version actuelle : 1.9.3


ID CARD : Ruby
p3ee.com




Exemples
p3ee.com




             Tout est objet

5.times { |i| puts i }

method(:puts).call "puts aussi est un objet !"
p3ee.com




Lancer un Thread
Thread.new do
  puts “Nouveau thread”
end
p3ee.com




         JGet/Setter

class rubyClass
      attr_accessor :f_name, :l_name
end
p3ee.com




Philosophie
p3ee.com




           Principe of Least Surprise

          • Améliorer votre intuition du code
          • Un code plus naturel
          • Un code intelligent




Réf : The Ruby way Par Hal Edwin Fulton
p3ee.com




                                   Alias

                          Size  Length

                               a = ['a','b','c']
                                  a.Size
                                 a.length



Réf : The Ruby way Par Hal Edwin Fulton
p3ee.com




                      method_missing




Réf : The Ruby way Par Hal Edwin Fulton
p3ee.com




          Language expressiveness
    class DocumentsController < ApplicationController
     def index
       unless current_user.signed_in?
        redirect_to comments_path
       else
        redirect_to users_path
       end
     end
    end



http://santosh-log.heroku.com/2011/03/27/expressing-ruby/
p3ee.com




     Ne pas être l‟esclave des performances

             Ecrire un code plus humain




Réf : Yukihiro Matsumoto, créateur Ruby
p3ee.com




       Framework Web OpenSource
       Extrait de Basecamp
       Apparu en 2005
       Version actuelle : 3.1




ID CARD : Rails
p3ee.com




Speed dating avec Rails
p3ee.com




Une bombe d‟innovation #1

    Nous incite à utiliser des
  techniques innovantes
       Asset Pipeline, Scoped
 routes, DRY, MVC, Convention over
        Configuration, ORM…
p3ee.com




Convention over Configuration

Réduisez le nombre de décisions à prendre
 Améliorez la maintenabilité de votre code
           Mon ex en entreprise
p3ee.com




        DRY
Don’t repeat yourself

         Or

        DIE
 Duplication is Evil
p3ee.com




             Asset pipeline




Minification et unification de tous les fichiers
                  JS et CSS
p3ee.com




Incitation au MVC
p3ee.com




                   Sécurisé
• XSS
• SQL Injection
• Malicious file execution
• CSRF (form + Ajax)
• MD5 pass encryption
•…
p3ee.com




…
p3ee.com




Une bombe d‟innovation #2

    Nous incite à utiliser des
 technologies innovantes

  SCSS, CoffeeScript, HAML…
p3ee.com




              HAML
HTML Abstraction Markup Languages

           Le HTML / 2
    (plus de problème de paire de balises !)
p3ee.com
p3ee.com




               SCSS
Syntactically Awesome Stylesheets

Le CSS redevenu potable !
         (plus besoin de stagiaire CSS !)
p3ee.com




   Des variables !




SCSS             CSS
p3ee.com




       Du nesting !




SCSS                  CSS
p3ee.com




gem „devise‟, „2.0.2‟
gem „rails_admin‟, „~1.5.6‟
p3ee.com




Une communauté surprenante

• Unification d‟une communauté sur un même réseau
• Partage, collaboration
• La prochaine philosophie
p3ee.com




Qui utilise Rails ?
p3ee.com
p3ee.com




Rails en France ?
p3ee.com




•   Railsfrance
•   RubyLive
•   Paris.rb
•   …
p3ee.com




Pour résumer
p3ee.com




      Rails c‟est une
 nouvelle philosophie


philosophy
p3ee.com




   Rails c‟est echanger avec
une communauté unique


community
p3ee.com




   Rails c‟est bénéficier de
 ressources uniques


knowledge
p3ee.com




        Rails c‟est utiliser la
meilleure technologie OpenSource



technology
p3ee.com




    Rails c‟est inciter a faire du
code propre et maintenable


clarity
p3ee.com




       Rails c‟est
  inciter à innover


innovation
p3ee.com




Essayer Rails c‟est…
p3ee.com




  l‟adopter !

Think new
Merci pour votre écoute
Strzelewicz Alexandre
    @strzel_a

Cours ROR internes : http://eschool.p3ee.com/
Postuler au WebLab : http://p3ee.com/apply
Twitter laboratoire : @epitech_weblab

Contenu connexe

Similaire à Web Lab - Thinking Rails

Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)
Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)
Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)Camille Roux
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Camille Roux
 
Kevin Avignon: Roslyn - La plateforme de compilation .NET
Kevin Avignon: Roslyn - La plateforme de compilation .NETKevin Avignon: Roslyn - La plateforme de compilation .NET
Kevin Avignon: Roslyn - La plateforme de compilation .NETMSDEVMTL
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPkemenaran
 
2013 01-08-php-maturite
2013 01-08-php-maturite2013 01-08-php-maturite
2013 01-08-php-maturiteRémi Alvado
 
Microformats - Métad0nnées pour Humains & Machines
Microformats - Métad0nnées pour  Humains & MachinesMicroformats - Métad0nnées pour  Humains & Machines
Microformats - Métad0nnées pour Humains & MachinesSylvain Carle
 
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
 
RMLL 2013: Projet rudder, retour sur 4 ans de Scala
RMLL 2013: Projet rudder, retour sur 4 ans de ScalaRMLL 2013: Projet rudder, retour sur 4 ans de Scala
RMLL 2013: Projet rudder, retour sur 4 ans de ScalaRUDDER
 
Introduction dans la Programmation Web Course 1
Introduction dans la Programmation Web Course 1Introduction dans la Programmation Web Course 1
Introduction dans la Programmation Web Course 1Vlad Posea
 
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...Renoir Boulanger
 
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
 
Preparer et diffuser un diaporama
Preparer et diffuser un diaporamaPreparer et diffuser un diaporama
Preparer et diffuser un diaporamaMaloryJ
 
Détecter et nettoyer le contenu générique
Détecter et nettoyer le contenu génériqueDétecter et nettoyer le contenu générique
Détecter et nettoyer le contenu génériquebenoit chevillot
 
Alphorm.com Formation Le langage Ruby
Alphorm.com Formation Le langage RubyAlphorm.com Formation Le langage Ruby
Alphorm.com Formation Le langage RubyAlphorm
 
DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)Cyrille Martraire
 
Séminaire Ruby on Rails (novembre 2010)
Séminaire Ruby on Rails (novembre 2010)Séminaire Ruby on Rails (novembre 2010)
Séminaire Ruby on Rails (novembre 2010)Novelys
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !matparisot
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Mathieu Parisot
 

Similaire à Web Lab - Thinking Rails (20)

Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)
Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)
Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)
 
Kevin Avignon: Roslyn - La plateforme de compilation .NET
Kevin Avignon: Roslyn - La plateforme de compilation .NETKevin Avignon: Roslyn - La plateforme de compilation .NET
Kevin Avignon: Roslyn - La plateforme de compilation .NET
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
2013 01-08-php-maturite
2013 01-08-php-maturite2013 01-08-php-maturite
2013 01-08-php-maturite
 
Microformats - Métad0nnées pour Humains & Machines
Microformats - Métad0nnées pour  Humains & MachinesMicroformats - Métad0nnées pour  Humains & Machines
Microformats - Métad0nnées pour Humains & Machines
 
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
 
RMLL 2013: Projet rudder, retour sur 4 ans de Scala
RMLL 2013: Projet rudder, retour sur 4 ans de ScalaRMLL 2013: Projet rudder, retour sur 4 ans de Scala
RMLL 2013: Projet rudder, retour sur 4 ans de Scala
 
Introduction dans la Programmation Web Course 1
Introduction dans la Programmation Web Course 1Introduction dans la Programmation Web Course 1
Introduction dans la Programmation Web Course 1
 
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
 
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
 
Preparer et diffuser un diaporama
Preparer et diffuser un diaporamaPreparer et diffuser un diaporama
Preparer et diffuser un diaporama
 
Détecter et nettoyer le contenu générique
Détecter et nettoyer le contenu génériqueDétecter et nettoyer le contenu générique
Détecter et nettoyer le contenu générique
 
Alphorm.com Formation Le langage Ruby
Alphorm.com Formation Le langage RubyAlphorm.com Formation Le langage Ruby
Alphorm.com Formation Le langage Ruby
 
DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)
 
Séminaire Ruby on Rails (novembre 2010)
Séminaire Ruby on Rails (novembre 2010)Séminaire Ruby on Rails (novembre 2010)
Séminaire Ruby on Rails (novembre 2010)
 
Rails 3 au Djangocong
Rails 3 au DjangocongRails 3 au Djangocong
Rails 3 au Djangocong
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
Clean code en pratique
Clean code en pratiqueClean code en pratique
Clean code en pratique
 

Web Lab - Thinking Rails