2009-08-25 5 views

Répondre

12

Il existe deux principaux anti-modèles que j'ai vu dans beaucoup de code Rails:

  1. beaucoup de « soulever des objets lourds » dans les vues. Tout ce qui est plus compliqué que la simple itération sur les collections ou l'interpolation des chaînes doit être dans des aides ou des méthodes de modélisation. Ne recherchez pas d'objets de modèle, ne construisez pas de grandes baies JSON ou ne mettez pas à jour les variables de session à partir de vos modèles ERB. Modéliser des objets qui ne sont pas utilisables pour la création de scripts ou l'implémentation d'API. Vos modèles définissent la sémantique du domaine pour votre application. Vous devriez être capable de lancer script/console, ou écrire des wrappers d'API de service, qui réutilisent des méthodes de modèle fonctionnelles existantes pour manipuler toutes les données clés de votre application. La fonctionnalité du contrôleur n'est disponible que dans le cycle de requête/réponse HTTP, qui n'est qu'une partie du cycle de vie d'un site complet.

1

Alphabet Soupe?

(Aucun type déclaré et nom de la variable de sens qui conduit à peu près un code non lisible)

Nom du motif provient des noms de variables comme 'a', 'b', 'c', 'd', etc.

+5

est ce RoR spécifique en quelque sorte? – SilentGhost

+0

Pas le moins. C'est quelque chose que j'ai remarqué beaucoup plus dans Ruby que dans d'autres langauges (et la majorité de ce que j'ai vu pour Ruby est RoR). –

+1

bien sûr il n'y a pas de type déclaré, c'est un langage dynamique. et n'importe qui qui utilise une seule lettre comme variable comme n'importe quoi mais un itérateur dans n'importe quelle langue a besoin de quelque chose durement jeté à eux –

14

Ne pas apprendre Ruby.

+0

Heh, je ne peux pas croire que j'ai eu un upvote pour ceci :-) –

+0

C'est une réponse intelligente :) – lucapette

2

UTILISATION AVEC moins d'autre

AntiModèle:

unless is_the_weekend? 
    do stuff that you do during the week 
else 
    do stuff that you do on weekends 
end 

Alternative:

if is_the_weekend? 
    do stuff that you do on weekends 
else 
    do stuff that you do during the week 
end