Archivos de Junio del 2010

21 Jun Ejemplo para iniciar tu campaña de marketing en Facebook

Ejemplo para iniciar tu campaña de marketing en Facebook

Facebook se ha convertido en un nido de posibles clientes, un público que domina internet y además le gusta. ¿Cómo podemos aprovechar eso? [...]

Continuar leyendo
16 Jun 960  Grid System - ¿Cómo funciona?

960 Grid System - ¿Cómo funciona?

En este atículo explicamos el funcionamiento de este sistema. [...]

Continuar leyendo
16 Jun Usando EC2 de Amazon para el hosting de aplicaciones Rails

Usando EC2 de Amazon para el hosting de aplicaciones Rails

Para estrenar la categoría de Lanzamiento voy a hablar como usamos Amazon EC2 en 3sellers. EC2 es un servicio de Amazon que ofrece un acceso barato y rápido a una gama amplia de servidores [...]

Continuar leyendo
04 Jun Observers y callbacks en modelos gorditos

Observers y callbacks en modelos gorditos

Un buen concepto de diseño o buena práctica en rails (y en cualquier aplicación que siga el patrón Modelo Vista Controlador) es el de Fat Model, Skinny Controller. Consiste en mover tanta lógica de negocio como sea posible al modelo y de dejar al controlador como un simple agente que se encargue de interactuar con modelo y enviar los resultados a la vista.

Con esta práctica se limpia el controlador de responsabilidades que no son suyas y de código que seguramente estará repetido en otros controladores, permitiendo mejor reusabilidad, mantenimiento y testeabilidad de código.

Por tanto nuestros modelos tienden a engordar, englobando todas las operaciones pertenecientes a ellos mismos, con validaciones, callbacks, etc..

Las validaciones permiten asegurarnos que nuestra base de datos solamente se llenara con datos validos. Los callbacks y los observers nos ofrecen la posibilidad de realizar ciertas acciones antes o después de alterar el estado de los objetos.

No hay duda de que las validaciones han de ir en los modelos. Crearlas en los controladores nos implicaría repetirlas en cada controlador que interactuara con ellos.
El problema es cuando implementar callbacks y cuando observers, ya que ambos son similares.

Continuar leyendo