Boire ou coder ... Pourquoi choisir?
Publié le 21 janvier 2010 23:00

Rails3: va-t-on vers J2EE ?

Rails 3 étant proche de sa première beta, j'en profite pour multiplier les articles à son propos ! Qui plus est il y a matière à écrire. Je ne m'en prive pas donc :)

Hier matin je suis tombé sur un article particulièrement intéressant The path to Rails3: Introduction, qui explique plutôt bien le maitre mot de cette nouvelle version du framework : découplage. Ce découplage a pour but de faciliter l'utilisation de rails par blocs uniquement lorsque son utilisation en entier n'est pas forcément nécessaire.

Vous pouvez ainsi valider vos modèles sans forcément être dans une application rails, ni utiliser Active Record. Avec arel, vous pouvez générer des requêtes SQL sans dépendre de rails (à terme du moins. Pour le moment, vous dépendez toujours d'ActiveRecord).

Avec bundler, vous gérez les dépendances de votre projet, qu'il utilise rails ou pas. Regardez comment je fais pour jesus ! Je ferai une présentation de bundler au prochain apéro Ruby à Lyon. Venez donc y assister !

Je découvre donc cet article. Et le trouvant intéressant, je le partage avec Julien qui bosse dans le même bureau que moi. Sa réaction a été "c'est vraiment en train de devenir inaccessible pour les débutants, rails. Trop compliqué" (je répète pas les choses mot pour mot, désolé).

Ce à quoi je réponds : NON !. Pour un débutant découvrant le framework, celui-ci reste toujours aussi simple. Le screencast créer un blog avec rails en 15 minutes est parfaitement adaptable pour rails 3.

Et ce parce que de base, rien ne change ! L'idéologie de rails est toujours convention over configuration et les API ne changent pas fondamentalement (sauf peut-être pour ActionMailer. Mais ce n'est pas encore implémenté).

Ainsi votre contrôleur ressemblera toujours à ceci :

class PostController < ApplicationController
  def index
    @posts = Post.all
  end
end

Votre modèle ressemblera toujours à cela

class Post < ActiveRecord::Base
  validates_presence_of :title, :content
end

Et votre vue ressemblera toujours à cela :

<% @posts.each do |post|  %>
    <p>
        <%= post.title %>
        <%= post.content %>
    </p>
<% end %>

Vos routes quant à elles, au lieu de ressembler à cela :

ActionController::Routing::Routes.draw do |map|
  map.resource :post
end

Ressembleront à cela :

ApplicationRails3::Application.routes.draw do |map|
    resources :post
end
Et rien qu'avec ça, vous avez le début de votre blog vous permettant déjà de visualiser la liste de tous vos articles.

"seul" le fonctionnement en interne change (et ce radicalement). Les API utilisées dans votre application ne changent, pour la plupart pas. Et si elles changent, la retro compatibilité devrait évidemment être assurée pendant pendant une version.

Moralité : non, rails ne se dirige pas vers une usine à gaz tel que J2EE. Oui, rails conserve sa simplicité. Et oui rails prends énormément en puissance.

Commentaires

Postez un commentaire

Markdown activé