[AVIS] Rubis & ROR

Discussion dans 'Web, design' créé par LEM01, 26 Janvier 2007.

Statut de la discussion:
Fermée.
  1. Offline
    LEM01 Touriste
    Hello,
    J'ai dans l'idée de me plonger dans un nouveau langages web, histoire de découvrir de nouveaux horizons :p

    J'ai entendu parlé de Ruby (qui n'est pas uniquement web entendons nous bien) et plus précisément de son framework Ruby On Rail, d'apres ce que j'ai pu lire jusque maintenant ça à l'air assez costaud, voir terrible en lisant certains commentaires. Je voulais simplement avoir votre avis la dessus.

    Pensez vous que ce langage (prometteur) va percer, être accepter au niveau des entreprises? Si vous avez eu la chance de déjà y toucher qu'en avez vous penser? Performance, API, ... Et au passage tout ce que vous avez trouver comme points négatifs histoire d'être critique.

    Enfin voila, j'attends vos avis :)
    LEM01, 26 Janvier 2007
    #1
  2. Offline
    PunkDeLuxe condom
    Je n'ai trouvé que un article interessant pour le moment : ICI

    Perso ca m'a l'air d'être encore un peu jeune pour s'y mettre :p Et la question pour les gros projets, le niveau de la charge sur le serveur et ses performances.

    Perso je reste sous PHP, et me remettrai bien à JAVA pour son JSP :)
    PunkDeLuxe, 26 Janvier 2007
    #2
  3. Offline
    Ahava Revenant
    J'en avais jamais entendu parler, je me lance à la recherche d'articles, vidéos & autres parce que le sujet du developpement web m'interesse :)
    Ahava, 26 Janvier 2007
    #3
  4. Offline
    Ahava Revenant
    Hum ca a l'air assez mystique comme machin...


    syntaxe totalement particulière, trop peu de compatibilité entre Ruby et Apache...


    Jlaisserai bien mûrir un peu Ruby avant d'y gouter... :)
    Ahava, 27 Janvier 2007
    #4
  5. Offline
    LEM01 Touriste
    trop peu de compatibilité avec apache ?? Ou t'as vu ça?
    J'sais pas ça me semblait intéressante surtout le framework ROR.
    LEM01, 27 Janvier 2007
    #5
  6. Offline
    neku Codeur roumain
    J'ai une connaissance, qui connait assez bien le ruby, il à pu me montrer une vidéo d'un gars faisant un site web de blog en 10mins en Ruby.

    Je ne donnerai pas d'avis personnel sur le Ruby vu que je n'ai jamais essayé.
    Mais il est pas rare de tomber sur des pages web proposant de l'aide ou des sources en Ruby, je dirais même trop souvent :/
    Le Ruby est un langage qui semble savoir faire parler de lui.
    neku, 27 Janvier 2007
    #6
  7. Offline
    Ahava Revenant
    J'ai simplement recherché un peu sur le net voir s'il était possible d'avoir Ruby en meme temps que PHP sur son serveur Apache de sorte à gérer les deux...

    Ca doit surement etre faisable mais j'ai pas plus de temps pour le moment pour m'y consacrer...
    Ahava, 27 Janvier 2007
    #7
  8. Offline
    Ezekiel ! Elite
    Ca fait perpette que ce langage est sorti et fonctionnel mais il est toujours loin derriere PHP.
    Perso j'ai regardé un peu ce qu'il en était à la sortie de ce langage et c'est clair qu'il a des avantages.
    En fait ce qui est vraiment chiant c'est de mettre 20 min pour afficher un "Hello world".
    Par contre niveau productivité, si tu "t'entraines" un peu à utiliser ce langage, tu gagneras vraiment beaucoup par rapport au PHP.
    Sinon le site de j0k3r a quand même pas mal de ressources pour Ruby :
    http://www.j0k3r.net/faire-une-recherche.html?q=ruby
    Si jamais tu fais qqchose en ruby poste les ici :p
    Ezekiel !, 28 Janvier 2007
    #8
  9. Offline
    whatever42 ex membre
    c'est celà, oui ...
    le seul point vrai dans cette phrase ... c'est que Ruby fait aussi du fonctionnel


    $ rails myfirstapp
    $ ./myfirst/script generate controller hello
    $ vi ./myfirstapp/app/controller/hello_controller.rb
    def say
    render_text "Hello World!"
    end
    $ ./myfirstapp/script/server

    faut vraiment pas être doué en dactylo pour prendre 20 minutes avec ça


    s/langage/framework/
    whatever42, 22 Mars 2007
    #9
  10. Offline
    Xou I ♥ rien
    Entre
    Code:
    $ rails myfirstapp
    $ ./myfirst/script generate controller hello
    $ vi ./myfirstapp/app/controller/hello_controller.rb
    def say
     render_text "Hello World!"
    end
    $ ./myfirstapp/script/server
    et
    Code:
    echo "Hello World!";
    Outre les 20 minutes, est-ce que ça ne parait pas sensiblemenet plus long ? :roll:
    Ca s'appelle jouer avec les mots tout simplement.
    Ca ne parait pas pratique du tout de devoir faire une vingtaine de ligne pour un simple affichage, j'ai peur de voir une requete SQL, 50 lignes ? :-D
    J'extrapole ne connaissant pas de langage, mais bon.

    Pour le moment, ça n'a pas l'air au point, maintenant il peut être interessant ce langage.
    Xou, 22 Mars 2007
    #10
  11. Offline
    whatever42 ex membre
    bon, un exemple vu que plein de gens en parlent sans jamais en avoir vu

    dans ta migration
    les articles
    Code:
    create_table :articles do |t|
    	  t.column :title, :string, :null => false
    	  t.column :text, :text, :null => false
    end
    
    et les commentaires
    Code:
    create_table :comments do |t|
    	  t.column :author, :string, :null => false
    	  t.column :title, :string, :null => false
    	  t.column :text, :text, :null => false
    	  t.column :article_id, :integer, :null => false
    end
    
    on édite le fichier de config pour les paramètres d'accès à la DB (login, mot de passe, host, ...) et puis pour générer automatiquement les tables :
    $ rake db:migrate

    on passe maintenant à la modélisation de données
    les articles
    Code:
    class Article < ActiveRecord::Base
      has_many :comments, :dependent => true
    
      validates_presence_of :title, :message => '^Il faut un titre'
      validates_presence_of :text, :message => '^Il faut du texte'
      validates_length_of :title, :minimum => 5, :message => '^Mettez un titre plus étoffé'
      validates_length_of :text, :minimum => 20, :message => '^Et vous appelez ça un article ?'
    
    et pour les commentaires
    Code:
    belongs_to :article
    
    enfin, le controlleur et la vue d'une liste d'article
    Code:
    def list
      @articles_page, @articles = paginate :articles, :order => 'id', :per_page => 5
    end
    def new
    	@article = Article.new
      end
    def create
      @article = Article.new(params[:article])
      if @article.save
    	flash[:notice] = "Article créé"
    	redirect_to :action => 'list'
      else
    	render :action => 'new'
      end
    end
    def destroy
      begin
    	Article.find(params[:id]).destroy
      rescue Exception => excep
    	flash[:notice] = excep
      ensure
    	redirect_to :action => 'list'
      end
    end
    
    et la vue qui affiche les articles avec leurs commentaiers
    Code:
    <p class="notice"><b><%= flash[:notice] %></b></p>
    
    <% for article in @articles %>
    <h3><%= h article.title %></h3>
    <p><%= textilize article.text %></p>
      <h4>Commentaires - <%= link_to "Ajouter un commentaire", :action => 'addcomment', :id => article %></h4>
      <% for commitem in article.comments %>
      <dl>
    	<dt><u><%= h commitem.title %></u></dt>
    	<dd><%= textilize commitem.text %>
    	  <b>Auteur : <%= h commitem.author %></b>
    	</dd>
      </dl>
      <% end %>
      <%= "<dl><dt>Aucun</dt></dl>" if article.comments.blank? %>
    </div>
    <% end %>
    
    alors donc nous n'avons vu aucune ligne de SQL

    la suppression récursive article -> commentaires associés est automatique, c'est le modèle qui détermine si oui ou non il faut procéder ainsi, il peut aussi lancer une exception qui affichera un joli message d'avertissement

    c'est de l'OO de a à z, Article.find:)first, :conditions => [ 'title = ?', var_titre ]).comment[2].author
    avec ça on cherche le premier article qui a pour titre la variable var_titre, et on récupère le nom de l'auteur du 3ème commentaire de cet article
    remarquez aussi que Ruby On Rails va échapper tous les caratères pour var_titre et la rendre 'safe', qui a dit SQL injection ?

    remarquez aussi 'textilize' ... ça permet d'avoir du html avec une syntaxe Wiki, et 'h' qui échappe tous les caractères pour en faire des html entities

    enfin, tous les messages qu'on a au niveau du modèles peuvent être affichés (en gros) au moment de la création / modification d'un article si les paramètres ne correspondent pas aux conditions demandées.
    Code:
    <%= error_messages_for 'contact' %>
    enfin, le 'paginate' permet d'automatiquement avoir, ici, 5 articles par page, avec tout le support pour changer de page et afficher la suite, par exemple pour avoir le numéro des 5 pages précédentes et suivantes (à la google)
    Code:
    <%= pagination_links(@articles_page, { :window_size => 10 } )
    alors j'ai sûrement encore oublié mille chose comme les test intégrés, de l'ajax à gogo facile (pour ceux qui aiment), une console pour tester en live, le support des breakpoint pour débugguer, une classe pour gérer les mailings en qques lignes, un loggueur intégré avec différent niveau d'alerte et de formatage, le scaffolding pour générer rapidement un prototype d'essai, un système de gestion de plugins avec des 100 aines de disponibles en une ligne de commande, du caching performant et simple, une sécurité accrue (SQL injection, XSS), bla bla bla ...
    whatever42, 22 Mars 2007
    #11
  12. Offline
    PunkDeLuxe condom
    Roof j'aurai du mal à m'y mettre à ce language vu la syntaxe :pfiou:
    PunkDeLuxe, 22 Mars 2007
    #12
  13. Offline
    guslinux Gamerz'ien
    L'exemple est très mal choisis.

    C'est clair que au début ca semble lourd ... mais quand tu dois faire de la gestion de bd c'est bluffant !! cherche de la doc sur scaffold :-D
    guslinux, 22 Mars 2007
    #13
  14. Offline
    Ezekiel ! Elite
    Je voulais dire que RoR est sorti depuis longtemps mais qu'il est encore très peu utilisé.
    De plus pour les 20 min, certes c'est exagéré mais j'ai vraiment eu cette impression de "lenteur".
    Entre un easyPHP qui s'installe en 2 minutes et ou il faut à peine configurer le php.ini et un server ruby un peu plus "difficile" à mettre en place ainsi que le nombre plus élevé de ligne de code à faire pour afficher un bete "hello world" m'ont un peu repousser.
    Ezekiel !, 23 Mars 2007
    #14
  15. Offline
    Xou I ♥ rien
    Disons que quand tu vois cet exemple, et puis l'agressivité dû à une expression incomprise, j'ai trouvé ça fort. :-D

    Mais clairemement, ça a l'air beaucoup plus facile à vue de nez comme ça.
    Sans doute je m'y laisserai tenter quand j'aurai un peu de temps, quoique ma priorité pour le moment c'est l'action script :-D
    'fin j'avoue que je me tate entre les deux
    Xou, 23 Mars 2007
    #15
  16. Offline
    guslinux Gamerz'ien
    En fait la philosophie de ruby on rails est vraiment pas mal. Mais il y a tellement d'autres langages ... Flex, PHP,ASP,MACH II... moi je commence à m'y prerdre :pfiou:

    Quelque chose d'hyper intéressant avec Ruby, c'est qu'on peut faire un package avec le programme et rendre les sources innacessibles. Intéressant lors de la vente d'un logiciel :-D
    guslinux, 23 Mars 2007
    #16
  17. Offline
    whatever42 ex membre
    un petit aperçu des fonctionnalités et de la tête du code nécessaire pour les mettre en application : http://www.rubyonrailsblog.com/files/RoRblog-CheatSheet.pdf
    il s'agit d'une cheatsheet, un pense bête, et donc pas une introduction, mais ça donne de bons exemples

    pour une introduction au ruby toute en douceur :
    http://www.ruby-doc.org/docs/ApprendreProgrammer/Apprendre_%E0_Programmer.pdf
    et c'est même en Français

    et enfin, pour réellement vous attaquer à Ruby on Rails
    http://www.railsfrance.org et leurs quelques articles de documentation si vous voulez essayer sans débourser un sous
    ou l'excellent bouquin "Agile Web Development with Rails", sortie en deuxième édition il y a pas si longtemps que ça

    pour ceux qui auraient des peurs d'installation : http://blog.slainer68.org/1/3/2007/easyrails
    le nom n'est pas innocent

    et pour ceux qui sont sous un OS du bien, ruby, rubygems et rails sont packagés, ajoutez-y un postgresql/mysql et un lighttpd/apache et vous voilà prêts à faire de la production


    PS: et je suis agress^Wint-aigre-iste si je veux d'abord
    whatever42, 28 Mars 2007
    #17
  18. Offline
    guslinux Gamerz'ien
    lol il va seulement arriver en Belgique ... chez Agora ils ne l'ont toujours pas :roll:
    guslinux, 28 Mars 2007
    #18
Statut de la discussion:
Fermée.