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 .


Répondre à