Your SlideShare is downloading. ×
0
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Introduction à Ruby - MS Techdays 2012
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introduction à Ruby - MS Techdays 2012

942

Published on

Ma présentation d'introduction à Ruby pour les Techdays 2012.

Ma présentation d'introduction à Ruby pour les Techdays 2012.

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
942
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Paradigme de programmation -> style fondamentalParadigmes Objet, impératif, concurrent, fonctionnel
  • Réflexion, -> les programmes et les objets de s'inspectenteux-mêmes et de se modifie
  • Transcript

    • 1. palais descongrèsParis7, 8 et 9février 2012
    • 2. Introduction à RubyMardi 7 févrierNicolas LedezArchitecte systèmeOrange Business ServicesIt&L@bs
    • 3. Nicolas Ledez
    • 4. Nicolas Ledez
    • 5. Nicolas Ledez
    • 6. Nicolas Ledez
    • 7. Nicolas Ledez
    • 8. Nicolas Ledez
    • 9. Simon Courtois
    • 10. Et maintenant Ruby
    • 11. Ruby : l’histoire Crée en 1995 Inspiré de Smalltalk, Lisp, Eiffel, Ada, etc Japonais Yukihiro Matsumoto « matz » Index TIOBE  12 2012  10 2011
    • 12. Japon / Lean Toyota Production System Gestion sans gaspillage
    • 13. Japon / Haïku Oh! Une luciole je voulais crier : « Regarde! » mais jétais seul Taïg
    • 14. Ruby 1/3 Interprété Objet Multiparadigme Multiplateforme Libre, gratuit, etc
    • 15. Ruby 2/3 Ramasse-miettes Gestion dexceptions Modification du code en « live » Expressions rationnelles (Regexp) Blocs
    • 16. Ruby 3/3 Héritage simple Mixin -> « héritage multiple » Extensions en C Les threads indépendants de l’OS Réflexion
    • 17. Virtual Machine 1/2 Matzs Ruby Interpreter – Cruby JRuby IronRuby Rubinius MacRuby
    • 18. Virtual Machine 2/2 YARV (Yet another Ruby VM) XRuby - rb -> Java bytecode RubyJS - rb -> Javascript HotRuby
    • 19. On commence ?
    • 20. Les variables var -> variable locale @var -> variable dinstance @@var -> variable de classe $var -> variable globale Var -> constante
    • 21. Le langage / Procédural 1 def une_fonction puts "Salut tout le monde !" end une_fonction Salut tout le monde !
    • 22. Le langage / Procédural 2 def une_fonction(message) puts message end une_fonction "Its alive !" Its alive !
    • 23. Le langage / Objet class UneClasse mess1 = UneClasse.new "Salut attr_accessor :message tout le monde !" def initialize(message) mess1.afficher_message @message = message end mess1.message = "Au revoir" puts mess1.message def afficher_message puts @message end end Salut tout le monde ! Au revoir
    • 24. Le langage / Tableau - bases Array.new(5, "A") a[0][cat] = feline a[1, 2] a[1..3] a[-3, 3]
    • 25. Le langage / Tableau - cool [ 1, 2, 3 ] + [ 4, 5 ] #=> [ 1, 2, 3, 4, 5 ] [ 1, 1, 3, 5 ] & [ 1, 2, 3 ] #=> [ 1, 3 ] [ 1, 2, 3 ] * 3 #=> [ 1, 2, 3, 1, 2, 3, 1, 2, 3 ] [ 1, 1, 2, 2, 3, 3, 4, 5 ] - [ 1, 2, 4 ] #=> [ 3, 3, 5 ]
    • 26. Le langage / Dictionnaires h = Hash.new("Go Fish") h["a"] = 100 h["b"] = 200 h["a"] #=> 100 h["c"] #=> "Go Fish"
    • 27. Et on pourrait y passer des heures
    • 28. Classe / héritage class MyArray < Array def clean! self.each do |e| puts list.join " " self.delete(e) if e % 2 puts list.clean!.join " end end " end puts list.join " " list = MyArray.new([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]) 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 2 4 6 8 10
    • 29. Classe / Monkey 1 Class Array def clean! self.each do |e| puts list.join " " self.delete(e) if e % 2 puts list.clean!.join " end end " end puts list.join " " list = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 2 4 6 8 10
    • 30. Classe / Monkey 2 - map Class Array def double puts list.double.join " " self.map { |e| e * 2 } puts list.join " " end end list = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] 2 4 6 8 10 12 14 16 18 20 1 2 3 4 5 6 7 8 9 10
    • 31. Classe / Monkey 3 - reduce Class Array def clean self.reduce([]) do |a, e| puts list. clean.join " " a << e unless ((e % 2) == 1) a puts list.join " " end end end list = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] 2 4 6 8 10 1 2 3 4 5 6 7 8 9 10
    • 32. Classe / Mixin Module MyClean class Array def clean! include MyClean self.each do |e| end self.delete(e) if e % 2 end class Hash end include MyClean def double end self.map { |e| e * 2 } end Array.new.double End Hash.new.double
    • 33. Autour du langage
    • 34. Autour de Ruby / Dev Rspec, Cucumber, Minitest, ... Spork, Guard, ... Bundler, RVM, Rbenv, Pik, ... http://www.bonjourgem.com/ +33,500 RubyGems.org
    • 35. Autour de Ruby / Prod Rails, Sinatra, ... Spork, Guard, ... HAML, SASS, Compass, ... Capistrano, Pupetts, Cheff, ... 15% Ruby Github (2eme place)
    • 36. ORM
    • 37. ORM / Active record 1 class CreateTickets < ActiveRecord::Migration def change create_table :tickets do |t| t.string :name t.text :description t.timestamps end end end
    • 38. ORM / Active record 2 class Ticket < ActiveRecord::Base validates_presence_of :name validates_presence_of :status belongs_to :status end
    • 39. ORM / DataMapper class LineItem include DataMapper::Resource property :order_id, Integer, :key => true property :item_number, Integer, :key => true end
    • 40. Framework Web
    • 41. Rails Uglifier Rack ERB ActiveRecord json i18n
    • 42. Demo Rails Par Simon Courtois
    • 43. Sinatra require sinatra get /hi do "Hello World!" end
    • 44. Templates
    • 45. Templates / ERB <p id="notice"><%= notice %></p> <p> <b>Name:</b> <%= @region.name %> </p> <%= link_to Edit, edit_region_path(@region) %> | <%= link_to Back, regions_path %>
    • 46. Templates / HAML %p#notice= notice %p %b Name: = @region.name = link_to Edit, edit_region_path(@region) | #{link_to Back, regions_path}
    • 47. J’ai Windows, je fais comment
    • 48. Rails Installer
    • 49. Rails Installer / DevKit
    • 50. JRuby
    • 51. IronRuby
    • 52. IronRuby
    • 53. RubySteel
    • 54. RubySteel
    • 55. RubySteel
    • 56. RubySteel
    • 57. Les ressources
    • 58. Essayer maintenant http://ironruby.net/try/ http://tryruby.org/ http://rubymonk.com/ http://railsforzombies.org/
    • 59. Pour apprendre http://ruby.railstutorial.org/ http://railscasts.com/
    • 60. A suivre http://nicolas.ledez.net/ @nledez Github : simonc @happynoff http://www.camilleroux.com/ @CamilleRoux http://matthieusegret.com/ @MatthieuSegret
    • 61. La communautée http://rubylive.fr/ @RubyLiveFR http://www.rubyfrance.org/ http://www.railsfrance.org/ Google groups: Rennes on Rails Apéros Ruby Railsfrance Ruby on Rails: Core @RubyJobsFR
    • 62. Conclusion

    ×