La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Palais des congrès Paris 7, 8 et 9 février 2012. Mardi 7 février Nicolas Ledez Architecte système Orange Business Services Introduction à Ruby.

Présentations similaires


Présentation au sujet: "Palais des congrès Paris 7, 8 et 9 février 2012. Mardi 7 février Nicolas Ledez Architecte système Orange Business Services Introduction à Ruby."— Transcription de la présentation:

1 palais des congrès Paris 7, 8 et 9 février 2012

2 Mardi 7 février Nicolas Ledez Architecte système Orange Business Services Introduction à Ruby

3

4 Nicolas Ledez

5

6

7

8

9

10

11 Simon Courtois

12 Et maintenant Ruby

13 Crée en 1995 Inspiré de Smalltalk, Lisp, Eiffel, Ada, etc Japonais Yukihiro Matsumoto « matz » Index TIOBE Ruby : lhistoire

14 Toyota Production System Gestion sans gaspillage Japon / Lean

15 Oh! Une luciole je voulais crier : « Regarde! » mais j'étais seul Taïg Japon / Haïku

16 Interprété Objet Multiparadigme Multiplateforme Libre, gratuit, etc Ruby 1/3

17 Ramasse-miettes Gestion d'exceptions Modification du code en « live » Expressions rationnelles (Regexp) Blocs Ruby 2/3

18 Héritage simple Mixin -> « héritage multiple » Extensions en C Les threads indépendants de lOS Réflexion Ruby 3/3

19 Matz's Ruby Interpreter – Cruby JRuby IronRuby Rubinius MacRuby Virtual Machine 1/2

20 YARV (Yet another Ruby VM) XRuby - rb -> Java bytecode RubyJS - rb -> Javascript HotRuby Virtual Machine 2/2

21 On commence ?

22 Les variables var -> variable -> variable d'instance -> variable de classe $var -> variable globale Var -> constante etc.

23 def une_fonction puts "Salut tout le monde !" end une_fonction Le langage / Procédural 1 Salut tout le monde !

24 def une_fonction(message) puts message end une_fonction "It's alive !" Le langage / Procédural 2 It's alive !

25 class UneClasse attr_accessor :message def = message end def afficher_message end Le langage / Objet Salut tout le monde ! Au revoir mess1 = UneClasse.new "Salut tout le monde !" mess1.afficher_message mess1.message = "Au revoir" puts mess1.message

26 Array.new(5, "A") a[0]['cat'] = 'feline' a[1, 2] a[1..3] a[-3, 3] Le langage / Tableau - bases

27 [ 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 ] Le langage / Tableau - cool

28 h = Hash.new("Go Fish") h["a"] = 100 h["b"] = 200 h["a"] #=> 100 h["c"] #=> "Go Fish" Le langage / Dictionnaires

29 Et on pourrait y passer des heures

30 class MyArray < Array def clean! self.each do |e| self.delete(e) if e % 2 end list = MyArray.new([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]) Classe / héritage puts list.join " " puts list.clean!.join " " puts list.join " "

31 Class Array def clean! self.each do |e| self.delete(e) if e % 2 end list = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] Classe / Monkey puts list.join " " puts list.clean!.join " " puts list.join " "

32 Class Array def double self.map { |e| e * 2 } end list = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] Classe / Monkey 2 - map puts list.double.join " " puts list.join " "

33 Class Array def clean self.reduce([]) do |a, e| a << e unless ((e % 2) == 1) a end list = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] Classe / Monkey 3 - reduce puts list. clean.join " " puts list.join " "

34 Classe / Mixin Module MyClean def clean! self.each do |e| self.delete(e) if e % 2 end def double self.map { |e| e * 2 } end End class Array include MyClean end class Hash include MyClean end Array.new.double Hash.new.double

35 Autour du langage

36 Rspec, Cucumber, Minitest,... Spork, Guard,... Bundler, RVM, Rbenv, Pik, ,500 RubyGems.org Autour de Ruby / Dev

37 Rails, Sinatra,... Spork, Guard,... HAML, SASS, Compass,... Capistrano, Pupetts, Cheff,... 15% Ruby Github (2eme place) Autour de Ruby / Prod

38 ORM

39 class CreateTickets < ActiveRecord::Migration def change create_table :tickets do |t| t.string :name t.text :description t.timestamps end ORM / Active record 1

40 class Ticket < ActiveRecord::Base validates_presence_of :name validates_presence_of :status belongs_to :status end ORM / Active record 2

41 class LineItem include DataMapper::Resource property :order_id, Integer, :key => true property :item_number, Integer, :key => true end ORM / DataMapper

42 Framework Web

43 Rails Uglifier ActiveRecord ERB i18n Rack json

44 Demo Rails Par Simon Courtois

45 Sinatra require 'sinatra' get '/hi' do "Hello World!" end

46 Templates

47 Name: | Templates / ERB

48 %p#notice= notice %p %b Name: = link_to 'Edit', | \#{link_to 'Back', regions_path} Templates / HAML

49 Jai Windows, je fais comment

50 Rails Installer

51 Rails Installer / DevKit

52 JRuby

53 IronRuby

54

55 RubySteel

56

57

58

59 Les ressources

60 Essayer maintenant

61 Pour apprendre

62 Github : A suivre

63 Google groups: Rennes on Rails Apéros Ruby Railsfrance Ruby on Rails: La communautée

64 Conclusion

65


Télécharger ppt "Palais des congrès Paris 7, 8 et 9 février 2012. Mardi 7 février Nicolas Ledez Architecte système Orange Business Services Introduction à Ruby."

Présentations similaires


Annonces Google