Partager cet article

Comme plus de 28 000 freelances, recevez des offres de mission tech à la messure de votre talent sur FreelanceRepublik.

Derniers articles

AccueilMétiers de la TechDéveloppeur Ruby on RailsRuby on Rails : qu'est-ce que c'est ? Comment l'apprendre ?

Ruby on Rails : qu’est-ce que c’est ? Comment l’apprendre ?

Vous vous intéressez à Ruby et Ruby on Rails ? Voulez vous mettre au développement RoR ? Ou tout simplement en savoir plus sur cette techno ?

Vous êtes sur la bonne page, suivez le guide !

Ruby et Ruby on Rails

Le point sur Ruby

Ruby est un langage de programmation interprété et orienté objet. Créé par Yukihiro Matsumoto en 1993 puis publié pour la première fois en 1995, ce langage a été pensé dans le but d’être simple d’utilisation.

Au niveau des versions, la dernière release majeure en date est la version 3.0 du langage, mise à disposition le 25 décembre 2020. Elle augmente considérablement la vitesse d’exécution du langage.

Ce langage de script est actuellement, selon l’index Tiobe, le 15ème langage de programmation le plus utilisé au monde.

Ruby on Rails

Ruby on Rails, souvent abrégé en RoR, est un framework web écrit en Ruby. Ce langage s’utilise en effet rarement seul, et la plupart des développements faits avec Ruby le sont avec ce framework.

Ce dernier, comme beaucoup de frameworks back-end notamment PHP (Symfony, Laravel, Zend, etc.), respecte le pattern de conception MVC.

Originellement sorti en 2005, sa dernière version en date est la 7.0, publiée le 15 décembre 2021.

Les utilisations de Ruby on Rails

Ruby on Rails étant un framework serveur MVC, il permet de faire ce que font ses cousins : développer des applications web.

Ruby et son frameworks sont d’ailleurs utilisés par de nombreux sites, avec parmi eux Airbnb, Kickstarter ou encore Twitch.

Les 2 grands principes de Ruby on Rails

Ceux qui connaissent déjà un peu RoR ont forcément entendu parler de ses deux principes : DRY et CoC.

Don’t Repeat Yourself (DRY)

Le principe DRY (Don’t Repeat Yourself – Ne vous répétez pas), comme son nom l’indique, est une philosophie en programmation consistant à éviter la redondance du code.

Avoir du code répétitif à plusieurs endroits d’un projet complexifie en effet le développement (sur le long terme), l’entretien du code source et encombre les fichiers pour rien. Choses que Ruby et Ruby on Rails veulent éviter.

L’architecture MVC aide notamment à respecter ce paradigme.

Convention Over Configuration (CoC)

Ou “convention plutôt que configuration”, en français. Ça veut dire que RoR encourage les développeurs à suivre des conventions établies (des règles, en somme) plutôt que de définir de la configuration. Le framework instaure donc un ensemble de règles, et la configuration du projet devient l’exception à ces règles.

Ruby : plongeon dans la technique

Développeur Ruby en train de développer sur son ordinateur

Maintenant qu’on vu la définition de Ruby on Rails et son fonctionnement théorique, plongeons un peu dans sa technique !

Le pattern MVC

Comme on l’a déjà dit, Ruby on Rails suit une architecture spécifique, qu’on a déjà expliquée dans un article dédiée, le modèle MVC.

Pour faire une rapide mise au point sur ce pattern, voici ses trois composantes :

  • Le modèle représente littéralement les modèles de données qui vont être utilisées dans l’application. Il s’agit typiquement des classes correspondantes dans les base de données ;
  • La vue, c’est l’interface graphique de l’application, c’est ce qui lui permet de faire communiquer l’utilisateur et le code métier ;
  • Le contrôleur, enfin, est l’élément qui contient la logique métier. C’est l’unité centrale de l’application, et qui fait le lien entre les modèles et les vues.

Ruby on Rails, notamment via l’utilisation de ce type d’architecture, a fortement influencé le développement d’autres frameworks web, comme Symfony ou CakePHP.

RubyGems

Ruby possède son propre gestionnaire de packages, RubyGems. Via ce dernier, on installe non seulement des librairies, mais aussi Ruby on Rails lui-même !

RubyGems compte aujourd’hui près de 90 milliards de “gemmes” téléchargées.

Il est également possible, comme avec npm (le gestionnaire de paquets officiel de Node.js), de créer et déposer soi-même des librairies.

Pour faire un rapide point sur le développement de gems Ruby, sachez que chacune de ces librairies consiste en :

  • Son code source ;
  • Sa documentation ;
  • Ses spécifications (Gemspec).

L’organisation du code source doit suivre l’architecture suivante :

gem_name/
├── bin/
│   └── gem_name
├── lib/
│   └── gem_name.rb
├── test/
│   └── test_gem_name.rb
├── README
├── Rakefile
└── gem_name.gemspec

Si vous voulez plus d’informations sur comment créer vous-même une librairie Ruby, il existe une documentation officielle pour ça !

La syntaxe de Ruby

Ruby on Rails étant un framework basé sur Ruby, il utilise évidemment la syntaxe de ce dernier. Si vous n’êtes pas familier de ce langage de script, voyons ensemble quelques exemples de sa syntaxe.

Déjà, une des premières choses à savoir, est que Ruby considère que tout est objet, nombres comme chaines de caractères.

Ensuite, et comme tous langages, Ruby a ses propres mots-clés. Par exemple :

  • L’utilisation du signe ‘@’ pour une variable d’instance et du double ‘@@’ pour une variable de classe (pas de @ pour les variables locales). Pour une variable globale, on utilise le $ ; alors qu’une constante commence par une majuscule ;
  • L’utilisation du mot ‘def’ pour une méthode et du ‘end’ pour terminer un bloc ;
  • L’existence du mot-clé ‘unless’ (le contraire de la condition ‘if’) ;

Voici un exemple plutôt complet des différentes règles qu’on peut observer chez Ruby :

# Exemple de déclaration d'un module
module AnimalSkills
  def eat
    puts "I'm eating !"
  end

  def move
    puts "I'm moving !"
  end

  def express; puts "I'm expressing !" end
end
# Exemple de déclaration d'une classe, avec variables et fonctions
class Animal
  include AnimalSkills # mixin

  @@name = 'an animal' # variable de classe

  def initialize(size, weight, color) # initialisation des variables d'instance
    @size = size.to_i
    @weight, @color = weight.to_i, color.to_s
  end

  def describe
    puts "I'm #{@@name} !"
    puts "I'm #{@size} meter tall, I weigh #{@weight} kilograms and I'm " + @color
  end
end
# Exemple d'instanciation d'une classe et d'appel de ses fonctions
class Zebra < Animal # héritage
  @@name = 'a zebra' # rédéfinition de la variable de classe: maintenant tous les animaux sont des zèbres !
   
  def initialize(size, weight, color = 'black and white') # surcharge
    super # appel de la méthode de la classe mère (Animal)
  end
end

z = Zebra.new(1, 50)

z.describe # => I'm a zebra ! / I'm 1 meter tall, I weigh 50 kilograms and I'm black and white
z.eat # => I'm eating !

Pour en savoir plus sur les différentes règles et la syntaxe de ce langage, vous pouvez consulter la documentation officielle de Ruby.

Autres éléments particuliers de Ruby

Pour être un peu plus complet sur le langage Ruby, on peut rajouter quelques éléments pour le définir :

  • Ruby intègre un ramasse-miettes ;
  • Ainsi qu’un système de gestion d’exceptions ;
  • Il intègre les regex ;
  • Et supporte l’inclusion de modules dans les classes.

Ce n’est évidemment pas tout ce qui définit Ruby, mais on a les principales particularités du langage.

Pourquoi se mettre à Ruby on Rails en 2022 ?

On vient de le voir, Ruby et son framework RoR forment une techno à part, assez différente des langages qu’on retrouve habituellement côté backend (PHP, Java, JavaScript avec Node, etc.).

On peut alors se poser la question : est-ce que ça vaut la peine de se former à Ruby on Rails en 2022 ?

La réponse est oui ! Voyons quelques raisons pour lesquelles Ruby et Ruby on Rails restent des technos intéressantes pour le futur :

  • Grâce à ses deux paradigmes de codage (Don’t Repeat Yourself et Convention Over Configuration), le développement avec Ruby est optimisé, plus rapide ;
  • Le langage Ruby est plutôt facile à lire ; il est logique, l’apprendre ne sera pas difficile pour un développeur expérimenté et pas trop compliqué pour un débutant ;
  • Ruby et Ruby on Rails sont maintenus et apportent des améliorations importantes, notamment en terme de performance ;
  • RoR est un framework qui intègre de base des règles de sécurité de données lors du développement d’applications web.

De plus, ce langage et le framework Ruby on Rails, bien que n’étant pas les plus utilisés, sont toujours très demandés par les entreprises. Il peut donc être intéressant de les apprendre, que vous soyez développeur ou non !

Si vous avez donc comme but de devenir développeur Ruby on Rails, voire développeur RoR freelance, il faudra apprendre ces technos. Et pour ça, il y a plusieurs possibilités.

Comment apprendre Ruby ?

Logo du langage de programmation Ruby

Il y a de nombreux sites qui proposent des tutoriaux, plus ou moins complets, comme celui de Grafikart.

Apprendre via des vidéos YouTube est aussi une bonne solution, par exemple avec la chaîne bien connue des développeurs, freeCodeCamp, qui a une vidéo entière dédiée à Ruby on Rails.

Tout ça, en vous aidant de la documentation officielle et en vous entrainant sur vos propres projets et exercices fera de vous un développeur Ruby on Rails opérationnel rapidement !


On espère que cet article vous aura éclairé sur ce qu’est Ruby et son framework Ruby on Rails ! Si vous avez toujours des questions sur ces technos, sa syntaxe ou comment l’apprendre, n’hésitez pas à nous les poser, l’espace commentaire est là pour ça !

Ces articles peuvent vous intéresser

Ne perdez plus de temps à prospecter en vain. Inscrivez-vous gratuitement sur FreelanceRepublik, et recevez de belles offres de missions tech. FreelanceRepublik est gratuit pour les freelances.