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.

Slides:



Advertisements
Présentations similaires
Java EPITECH 2012
Advertisements

Unité 5 – Leçon B Les pages Les mois (m.) = the months 1 - janvier 2 - février 3 - mars.
Réalisé par Frédéric TRAN
PHP5 its a kind of magic. Chargement automatique function __autoload( $nom_classe ) { require_once('obj/'.$nom_classe.'.class.php'); } si on exécute le.
Formation universitaire à .NET: Introduction à C#
« Les Mercredis du développement » Les Starter Kits Level 100 Présenté par Pierre Lagarde Relation technique développeur
De Windows Forms à Windows Presentation Foundation
ASP.NET v2 + Ajax = Atlas Pierre Lagarde DevDays 2006 Equipé aujourdhui, prêt pour demain !
Conception de Site Webs dynamiques Cours 5
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 9 Patrick Reuter.
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 8 Patrick Reuter.
A propos de java Sun, fin 1995 C++ nettoyé semi-interprété
Programmation Tcl/Tk Raymond Ripp février 2010 Survol général o Applications et Protocoles o Windows Linux o Disques Processeurs o Passage en mode console.
Programmation Tcl/Tk Raymond Ripp janvier 2009
ContractionsContractions How the French get around.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
HTML Les types de balises
Bases de données Objet singleton pour la connexion
Les entrées /sorties en Java François Bonneville
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
CPI/BTS 2 Programmation Web Introduction au PHP
Rules Each group answers every question. A student will be selected at random to answer the question. If that team misses, a 2 nd name is drawn, and they.
En Avant grammaire interactive C HAPITRE 1 : Pour commencer.
Mini-dialogues Bon Voyage – Leçons Préliminaires.
© 2007 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 La Concurrence Déclarative Peter Van Roy Département dIngénierie Informatique, UCL
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
Les Webcasts Groupe des Utilisateurs SQL Server Avril 2014 – Statistiques Incrémentales Fred Pichaut – Microsoft Senior.
Mardi vingt et un février 2012 Objectif: la révision! Je fais du _____ deux fois par ________. Jen fais parce que ça détend, et je ____ de la natation.
C#. Sommaire I. Descriptions du langage 1. Son origine 2. Plate-forme d'exécution II. Capacités du langage 1. Différences avec le C / C++ 2. Java Vs C#
Algorithme et programmation
Atelier 5 Les podcasts vidéo Mettre en ligne des ressources videos Intégrer des ressources : les secret de lEMBED Juin-2010.
22 Model-View-ViewModel et testabilité pour WPF/Silverlight Richard Clark Clark Ingénierie Informatique Simon Ferquel Access It.
Programmation Orienté Objet Application Au Langage JAVA Licence professionnelle ATC ~ 07/08 Bessem BOURAOUI
Follow the directions on each slide. If you finish early you may work on an assignment for another class.
CSI2520, Hiver 2007 Python Un langage de programmation par scripting et plus…
Eric Laporte Institut Gaspard-Monge Université de Marne-la-Vallée France Introduction à Perl.
Do List Organize Everything with list. INTRODUCTION applications dont deux tiers gratuites activations par jour 50,8% des ventes de Smartphones.
Faculté I&C, Claude Petitpierre, André Maurer 1 Concepts dhéritage Héritage dimplémentation hasA Héritage de spécialisation isA.
Ift 2251 Introduction au Génie Logiciel
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
PhP-MySQL Pagora 2012/2013 CTD 2. Première balise -Plusieurs types de balise - - … -Partout !
Chapitre 9 Les sous-programmes.
Standard Template Library
CSI2520 Le langage Scheme (2) Un langage de programmation fonctionnelle.
Fabienne Boyer Laboratoire LIG (INRIA-UJF-INPG) Projet SARDES, INRIA Rhône-Alpes APACHE/VELOCITY.
2 Développer, tester et déployer un site web avec WebMatrix (RIA101) Christine Dubois 9 février 2011.
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Entity Framework 4 Mitsuru FURUTA Relations techniques développeurs
Développement Web Open Source haXe et les outils « open source » Première partie.
27/02/2006L3 MIAGE - GLO ADA1 Les Paquetages Permettent d’encapsuler un groupe d’entités logiquement reliées. Comme toute unité de programme, le paquetage.
2.1 - Historique Chapitre 2 : Introduction au langage C++
Introduction au langage PHP Licence Pro Cours Internet / Intranet Utilité Historique Exemples Fonctions PHP Classes.
AOP dans .Net avec PostSharp
Javascript 2° PARTIE : EVENEMENTS ET OBJETS
JavaScript Nécessaire Web.
Projet SwitcHome Cahier des charges techniques Adeline COUPE, Hélène DRAUX, Ismaïla GIROUX, Loïc TACHET.
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
AngularJS.
13 juin Le mécanisme de templates de Sympa.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
IFT 232 Méthodes de Conception Orientées Objets Introduction.
Introduction au socle MEAN
La programmation par objets Principes et concepts Etude de Smalltalk.
Initiation au JavaScript
La programmation par objets
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
EXPRESSIONS. How do you say? Comment dit-on? Hello! Good day!
Développement à l'Aide de Langages Dynamiques : Smalltalk module IT308: Méthodologies et outils logiciels Nada Ayad, Damien Cassou et Annabelle Souc.
Ruby votre prochain langage de programmation préféré Guillaume Cottenceau LinuxDays Genève 22 Mai 2007.
Transcription de la présentation:

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

Nicolas Ledez

Simon Courtois

Et maintenant Ruby

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

Toyota Production System Gestion sans gaspillage Japon / Lean

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

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

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

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

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

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

On commence ?

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

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

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

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

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

[ 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

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

Et on pourrait y passer des heures

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 " "

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 " "

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 " "

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 " "

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

Autour du langage

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

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

ORM

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

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

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

Framework Web

Rails Uglifier ActiveRecord ERB i18n Rack json

Demo Rails Par Simon Courtois

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

Templates

Name: | Templates / ERB

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

Jai Windows, je fais comment

Rails Installer

Rails Installer / DevKit

JRuby

IronRuby

RubySteel

Les ressources

Essayer maintenant

Pour apprendre

Github : A suivre

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

Conclusion