2009/10/4 Emmanuel Oga <[email protected]>:
> 2009/10/4 Nicolás Sanguinetti <[email protected]>:
>> 2009/10/4 Pablo Herrero <[email protected]>:
>>>
>>> El 3 de octubre de 2009 18:22, NachoKB <[email protected]> escribió:
>>>>
>>>> De hecho, si tenés múltiples modelos que comparten comportamiento... ¿no
>>>> podrías usar herencia?
>>>
>>> Venia a decir exactamente eso, ademas, me parece q este problema en
>>> particular tiene poco q ver con ActiveRecord.
>>
>> Ta, el tema de la herencia vs composición es fácil.
>>
>> El comportamiento que comparten, es *el único comportamiento* de la
>> clase? En ese caso podés usar herencia. Si la clase hace algo más,
>> entonces composición, o el Señor Single Responsability Principle se
>> pone triste.
>
> Que interesante que comentes esto... siempre tengo una vocesita en el
> fondo de mi mente que me dice que una subclase de activerecord no
> debería contener lógica de negocios... Una instancia de ActiveRecord
> representa en realidad una fila de una tabla no? Su única
> responsabilidad debería ser encontrar cosas guardadas en la db,
> instanciar las filas, y guardar las modificaciones.
>
> La alternativa seria usar clases ActiveRecord solo para todo lo que
> tenga que ver con persistencia, y otras clases diferentes para la
> lógica de negocios (analizando si es sible que *no* sea
> 1ARecord:1BusinessModel).
>
> En fin, hasta que se me ocurra una alternativa (y/o razones más
> contundentes para no hacerlo), lo mas seguro es que siga metiendo mi
> lógica de negocios en subclases de ActiveRecord::Base.

No hay que ser extremista tampoco :P

Yo que sé, es encontrar el punto de balance entre "pureza" y
pragmatismo. Pureza entre comillas porque no lo es necesariamente
tanto. Si funciona, es fácil de testear, y es fácil de refactorear, es
suficientemente bueno. Neeeeext :)

>>
>>> _______________________________________________
>>> Ruby mailing list
>>> [email protected]
>>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>>
>>>
>> _______________________________________________
>> Ruby mailing list
>> [email protected]
>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>
>
>
>
> --
> --------------------------------------------------------------
> EmmanuelOga.com - Software Developer
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a