45
Ruby et son écosystème Le language, ses frameworks, en entreprise, sa communauté, Michael Bensoussan Louis Cuny Ruby et son écosystème Michael Bensoussan Louis Cuny

Ruby et son écosystème (french)

Embed Size (px)

DESCRIPTION

Ruby Ecosystème : le language, ses outils, librairies, frameworks, interpréteurs, ...

Citation preview

Page 1: Ruby et son écosystème (french)

Ruby et son écosystèmeLe language, ses frameworks, en entreprise, sa communauté, …

Michael BensoussanLouis Cuny

Ruby et son écosystème Michael Bensoussan Louis Cuny

Page 2: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

• Libre.• Language interprété, orienté objet et multi-paradigme

(Wikipedia).• Language né au Japon en 1993.• Première release en 1995.• Inspiré de plusieurs courants Perl, Smalltalk, Eiffel et Lisp.

Histoire

Mike
expliquer interprete (si besoin donc demander) et multi-paradigme (programmation fonctionnelle, impérative, refelctive ...)
Page 3: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Qui utilise Ruby ?

Page 4: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Features

Mike
expliquer que je vais pas tout expliquer sur ruby mais seulement parler des features notables
Page 5: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

L’incontournable !

Page 6: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Tout est objet !

Page 7: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Tout est objet !

Page 8: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Quelques classes de base String

Array

Hash

Page 9: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Quelques classes de base Integer (Fixnum, Bignum)

Float

Ranges

Mike
Fixnum == 31 bits
Page 10: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Quelques classes de base TrueClass, FalseClass, NilClass

Ne signifient pas la meme chose

Page 11: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Dynamically typed

Page 12: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Strongly typed

Page 13: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Méthodes et paramètres Tout les paramètres sont passés par référence sur les objets

Une valeur par défaut peux-etre spécifié pour les paramètres

La valeur retournée est la dernière valeur évaluée

Page 14: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Ruby juge un objet sur ce qu’il est capable de faire pas sur un type défini statiquement

Duck Typing

Page 15: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Classes

Page 16: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Héritage

Page 17: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Modules Les modules sont des classes non instanciables Permet d’organiser l’espace de nom en structure arborescente

Page 18: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Modules Pas d’héritage multiple en ruby

mais utilisation des Mixin !

Un Mixin étend les compétences d’une classe en lui ajoutant une série de méthodes

Page 19: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Modules, exemple: Enumerable RDOC: The Enumerable mixin provides collection classes with several traversal and

searching methods, and with the ability to sort. The class must provide a method each, which yields successive members of the collection.

Page 20: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Les blocs de code sont incontournables en Ruby

Blocs

Bloc = fragment de code avec contexte d’exécution

C’est un objet comme les autres (classe Proc)

Peut-être passé en paramètre et accepte lui aussi des paramètres

Page 21: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Outils

Page 22: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

interactive ruby shell

IRB

Page 23: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Comme ‘make’ mais en Ruby !

Rake

Page 24: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Gestion de package ruby

Gems

Gère les dépendances, les mises à jour, installe les librairies, exécutables et documentation

Page 25: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Gems

Page 26: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Gems, Libraries, Plugins

Page 27: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Tests

Page 28: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

unit testing framework : En programmation informatique, le test unitaire est un procédé permettant de s'assurer du fonctionnement correct d'une partie déterminée d'un logiciel (Wikipedia)

Rspec

Page 29: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Page 30: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Interpréteurs

Page 31: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Interpréteurs

Page 32: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

FrameworksWebs

Page 33: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Sinatra est un framework minimaliste pour créer des applications web sans efforts

Sinatra

A inspiré de nombreux autres frameworks dans de nombreux languages ; PHP (Slim, fitzgerald, frank.php), Perl (Dancer, Sinatra on Perl), javascript (express, samy), Scala (scalatra), Python (nicedog, web.py) …

Page 34: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Sinatra

Page 35: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Sinatra

Page 36: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Rails Framework web basé sur 3 principes fondamentaux :

Convention Over Configuration DRY (don’t repeat yourself) REST

Il est basé sur une architecture MVC

Page 37: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Rails

Page 38: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Rails : Modèles

Générer un model

Editer la migration (db/migrations/201009021356_create_users.rb)

Les modèles sont les classes assurant la gestion des données.

Page 39: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Rails : Modèles Le modèle (app/models/user.rb)

Page 40: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Rails : Console Rails surcharge irb pour lui rajouter des fonctionnalités propres a Rails

Page 41: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Rails : Controlleur Les contrôleurs réagissent aux actions des utilisateurs, ils vont chercher les

données dans la base et les mettent à disposition aux vues.

Page 42: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Rails : Vues Les vues déterminent comment sont affichées les informations à l'utilisateur.

Page 43: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Ressources Site Officiel : http://ruby-lang.org _why Guide to Ruby : http://mislav.uniqpath.com/poignant-guide/ Sinatra site officiel : http://www.sinatrarb.com/ Ruby On Rails tutorial : http://guides.rubyonrails.org/

Rspec site officiel : http://rspec.info/

Intégration continue avec Integrity : http://integrityapp.com/ Rubygems : http://rubygems.org/

Github : http://github.com/

Page 44: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Vous recherchez un

stage [email protected]

Page 45: Ruby et son écosystème (french)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Questions ?

[email protected]@letitcast.com