Ruby
Créateur :Yukihiro
Matsumoto (Matz)
HISTOIRE
Ruby est un langage de POO simple et
puissant
Influencé
par perl il a choisi ruby comme
nom de son nouveau langage
Naissance du langage :24/02/1993
Créateur :Yukihiro Matsumoto (Matz)
Pourquoi Ruby?
Ecrire un code plus clair en moins de
lignes
Gratuit (licence très ouverte)
Extensible
Multi-plateforme , multi-paradigme
Principes de Ruby
Principe de la moindre surprise
Principe de la concision
Principe de la moindre suprise
Ce principe est le principe suprème de ruby
Facilite la vie aux programmeur et rend Ruby facile à apprendre
Exemples
De quelle classe dérive un objet ?
[Link]
C’est Array#size ou Array#length?
same method – they’re aliased
Quelle est la difference entre deux tableaux ?
diff = ary1 – ary2
union = ary1 + ary2
Principe de la concision
Nous n’aimons pas perdre du temps
Spécialement sur les fichiers de configuration XML, les getters les
setters, etc....
Plus vite nous programmons plus
d’artefacts nous produisons
Moins de code c’est aussi moins de bugs
Ruby est réellement objet
Toutes les classes dérivent de Object y compris Class
(comme en Java) cependant il n y a pas de primitives
(pas comme en Java)
Ruby utilise l’héritage unique
Le “Mixins” Vous donne le pouvoir de l’héritage multiple
sans les maux de tête associés
Les “Modules” permettent l’addition de comportements
aux classes
La “reflexion” est de conception avec de nombreuses et
puissantes fonctionnalités de métamodélisation
‘=‘ et ‘+’ sont en des méthodes (comme en smalltalk)
Quelques conventions de
programmation
Chainage de méthodes
print [Link]
Les noms des méthodes inclus ! Et ?
[Link]! (discuss bang if there is time)
Iterateurs et Block contre Les boucles
[Link] { |file| process(file) }
Cas d’utilisations:
Les noms des classes commencent avec une majuscule
Les constantes sont en majuscules
Les variables locales les appels de méthodes sont en
minuscule
Under_score au lieu de camelCase
Liens pour s’informer
[Link]
dossier-complet-pour-tout-comprendre-
sur-cette-techno-pahre-du-
web20#ruby_histoire
[Link]
[Link]
php/tuts/ruby/
MacOSX_Ruby_Reference.pdf