2009-08-25 21 views

Respuesta

12

Hay dos grandes anti-patrones que he visto en mucho código Rails:

  1. un montón de "trabajo pesado" en las vistas. Cualquier cosa más complicada que la iteración simple sobre las colecciones o la interpolación de cadenas debería ser en ayudantes o métodos modelo. No consulte objetos modelo, construya grandes matrices JSON o actualice variables de sesión desde sus plantillas ERB.

  2. Objetos de modelo que no se pueden utilizar para scripts o implementación de API. Sus modelos definen la semántica del dominio para su aplicación. Debería poder iniciar script/consola, o escribir wrappers de API de servicio, que reutilizan métodos de modelos funcionales existentes para manipular todos los datos clave en su aplicación. La funcionalidad del controlador solo está disponible en el ciclo de solicitud/respuesta HTTP, que es solo una parte del ciclo de vida de cualquier sitio con todas las funciones.

1

Alphabet Soup?

(No tipo declarado y denominación variable de sentido que conduce a código casi un-legible)

Nombre del patrón viene de nombres de las variables como 'a', 'b', 'c', 'd', etc.

+5

es esto de alguna manera RoR-específico? – SilentGhost

+0

No en lo más mínimo. Es algo que he notado mucho más en Ruby que en otros lenguajes (y la mayoría de lo que he visto usar a Ruby es RoR). –

+1

por supuesto no hay ningún tipo declarado, es un lenguaje dinámico. y cualquiera que use una sola letra como variable, excepto un iterador en cualquier idioma, necesita algo difícil. –

14

Sin conocimiento Ruby.

+0

Heh, no puedo creer que obtuve un voto positivo para esto :-) –

+0

Es una respuesta inteligente :) – lucapette

2

USO CON menos que otra cosa

antipatrón:

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

Alternativa:

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