Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parNazaire Huguet Modifié depuis plus de 10 années
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 It&L@bs Introduction à Ruby
4
Nicolas Ledez
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 12 2012 10 2011 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 locale @var -> variable d'instance @@var -> 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 initialize(message) @message = message end def afficher_message puts @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 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 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 1 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 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 2 4 6 8 10 12 14 16 18 20 1 2 3 4 5 6 7 8 9 10 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 2 4 6 8 10 1 2 3 4 5 6 7 8 9 10 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,... http://www.bonjourgem.com/ +33,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: = @region.name = link_to 'Edit', edit_region_path(@region) | \#{link_to 'Back', regions_path} Templates / HAML
49
Jai Windows, je fais comment
50
Rails Installer
51
Rails Installer / DevKit
52
JRuby
53
IronRuby
55
RubySteel
59
Les ressources
60
http://ironruby.net/try/ http://tryruby.org/ http://rubymonk.com/ http://railsforzombies.org/ Essayer maintenant
61
http://ruby.railstutorial.org/ http://railscasts.com/ Pour apprendre
62
http://nicolas.ledez.net/ @nledez Github : simonc @happynoff http://www.camilleroux.com/ @CamilleRoux http://matthieusegret.com/ @MatthieuSegret A suivre
63
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 La communautée
64
Conclusion
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.