Forum: Rails-ES ¿Observer o usar callbacks?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
B7de309e2f3436b5b1c0b5c18dad089d?d=identicon&s=25 Carlos Belizón Ibañez (paliyoes)
on 2009-05-19 23:25
Tengo una duda:

¿Cuándo he de usar callbacks y cuando observers?
1f2eadfb41362800ebc2cf211b91d0f7?d=identicon&s=25 javier ramirez (Guest)
on 2009-05-20 02:36
(Received via mailing list)
Carlos Belizón wrote:
> Tengo una duda:
>
> ¿Cuándo he de usar callbacks y cuando observers?
>

hay un caso claro. Si la lógica del callback aplica a varios modelos,
entonces lo pondrías en un observer.

Para el resto de casos, yo soy partidario de poner como callback todo lo
que esta directamente relacionado con la lógica de negocio del modelo, y
en un observer lo que está ahí de forma más o menos accidental y que
sólo añade ruido.

Por ejemplo, si cada vez que se crea un usuario tienes que generar un
token único para alguna funcionalidad, yo eso lo pondría como callback
en el propio modelo. Pero si cuando se modifica un usuario tienes que
expirar una caché o tienes que guardar unas estadísticas, entonces lo
pondría en un observer.

El único trade-off de los observers es que en modo development son
lentos. En cada request se hace una carga de todos los observers y en
algún proyecto donde tengo muchos (caché y envío de mails/notificaciones
principalmente) se acaba notando en modo development. En modo producción
no se realiza una carga por request, así que no tienes ese problema.

Al final trato los observers como elementos que me permiten añadirle
comportamiento extra a una clase, pero que realmente no son parte de su
lógica interna.

Dicho esto, seguro que hay opiniones que difieren de la mía :)

saludos,

j


--
javier ramírez

..i do ruby on rails development in madrid, spain, at
http://www.aspgems.com
..you can find out more about me on http://formatinternet.wordpress.com
and http://workingwithrails.com/person/5987-javier-ramirez
This topic is locked and can not be replied to.