Sandi Metz Rules \o/ http://thunderboltlabs.com/posts/5-simple-rules-to-good-oo-in-rails.html https://gist.github.com/henrik/4509394 http://robots.thoughtbot.com/post/50655960596/sandi-metz-rules-for-developers
2013/6/4 Guirec Corbel <[email protected]> > J'ai lu quelque part (je n'arrive plus a mettre la main sur le post) > qu'une bonne pratique était de ne passé qu'une seule variable d'instance > entre le contrôleur et la vue. Si on a un contrôleur UsersController, on > doit se limiter à passer des variables représentant la class User. > > Je pense qu'utiliser des helpers de contrôleur c'est un peu contourner le > problème. Il faudrait remplacer les autres instances par des presenters. > > J'avoue que j'ai du mal, parfois, avec ce principe. L'utilisation des > helpers, des presenters, des partials et des decorators sont encore assez > difficile pour ma part. > > > Le 4 juin 2013 09:16, Nicolas Blanco <[email protected]> a écrit : > > Hello tous ! >> >> Vu qu'il y a eu un sujet sur le DCI, je vous propose un nouveau sujet >> "troll" sur les variables d'instance dans les contrôleurs et vues >> Rails. >> >> Je me suis rendu compte que sur mes derniers projets, je n'ai utilisé >> aucune variable d'instance, et qu'un "ack '@' app/controllers" ne me >> retourne aucun résultat :). >> >> Pour faire court je remplace toutes mes variables d'instance par des >> méthodes et helpers de contrôleurs, quelques fois définis avec >> decent_exposure (qui met en cache automatiquement et évite >> l'utilisation de ||= ). >> >> Je ne vois que des avantages à cela : >> * Isolations des vues, >> * Eviter les exceptions pourries style "undefined method `each' for >> nil:NilClass", >> * Le code de la méthode est appelé que s'il est effectivement utilisé >> par la vue, >> * Un concept en moins à utiliser, >> * Je trouve le caractère @ moche dans le code (tout comme $ en PHP :D), >> * etc. >> >> Il m'arrive de faire des mini présentations de Rails, que pensez-vous >> de ne carrément plus apprendre ce concept de passage de variables >> d'instance entre contrôleurs et vues aux débutants, voir de l'enlever >> des guides, etc ? >> >> -- >> Nicolas Blanco, Web developper >> >> http://www.nicolasblanco.fr >> Jabber/GoogleTalk : [email protected] >> Twitter : http://twitter.com/slainer68 >> Github : http://github.com/slainer68 >> Skype : slainer68 >> >> -- >> -- >> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" >> de Google Groups. >> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse >> [email protected] >> Pour résilier votre abonnement envoyez un e-mail à l'adresse >> [email protected] >> --- >> Vous recevez ce message, car vous êtes abonné au groupe Google >> Groupes Railsfrance. >> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le >> concernant, envoyez un e-mail à l'adresse >> [email protected]. >> Pour plus d'options, visitez le site >> https://groups.google.com/groups/opt_out . >> >> >> > -- > -- > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de > Google Groups. > Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse > [email protected] > Pour résilier votre abonnement envoyez un e-mail à l'adresse > [email protected] > --- > Vous recevez ce message, car vous êtes abonné au groupe Google > Groupes Railsfrance. > Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le > concernant, envoyez un e-mail à l'adresse > [email protected]. > Pour plus d'options, visitez le site > https://groups.google.com/groups/opt_out . > > > -- Cyril Mougel http://blog.shingara.fr -- -- Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected] --- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Railsfrance. Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .
