Ruby et son écosystème (french)

Preview:

DESCRIPTION

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

Citation preview

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

Michael BensoussanLouis Cuny

Ruby et son écosystème Michael Bensoussan Louis Cuny

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 ...)

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Qui utilise Ruby ?

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

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

L’incontournable !

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Tout est objet !

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Tout est objet !

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Quelques classes de base String

Array

Hash

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Quelques classes de base Integer (Fixnum, Bignum)

Float

Ranges

Mike
Fixnum == 31 bits

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Quelques classes de base TrueClass, FalseClass, NilClass

Ne signifient pas la meme chose

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Dynamically typed

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Strongly typed

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

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

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Classes

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Héritage

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

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

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.

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

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Outils

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

interactive ruby shell

IRB

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Comme ‘make’ mais en Ruby !

Rake

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

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Gems

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Gems, Libraries, Plugins

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Tests

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

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Interpréteurs

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Interpréteurs

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

FrameworksWebs

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) …

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Sinatra

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Sinatra

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

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Rails

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.

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

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

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

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

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.

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

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

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/

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Vous recherchez un

stage ?dev@letitcast.com

TESTRuby et son écosystème Michael Bensoussan Louis Cuny

Questions ?

mike@letitcast.comlouis@letitcast.com

Recommended