Hola Esteban,

> > Bueno, antes de decidir si se comentan o no los métodos tendríamos que
> > diferenciar muy bien método de mensaje.
> 
> Creia tenerlo claro, pero segun lo entiendo el método es la
> implementación del comportamiento, y el mensaje es quien activa dicho
> comportamiento.
> 
> > ¿Qué es lo que se comenta, el método o el mensaje?
> 
> En Smalltalk sólo hay lugar para comentar el método, el mensaje sólo
> se podría documentar en el emisor (que es quien lo instancia/envia).

El emisor instancia un ENVIO de mensaje, no el mensaje en si.

El mensaje es, según yo lo entiendo, un concepto... algo que podría
enviar a alguien (aunque nadie lo envíe, el concepto del mensaje podría
existir igual).

No estaría mal si de esta discusión sacamos una definición de que es
Mensaje.

> > ¿Si hay varios métodos que implementan el mismo mensaje, la
> > documentación del mensaje no estaría duplicada?
> 
> El mensaje se implementa? o es el método? El mensaje se envia, y en
> todo caso se instancia manualmente. Al menos asi lo entiendo yo (sic
> sic, diría Nimo ;-) )

Bueno, como te decía antes, un envío de mensaje es una cosa, y el
mensaje en si es otra... vamos a un ejemplo:


Mensaje:
--------

#baila -> cuando el receptor recibe el mensaje #baila este (el receptor)
baila un tango.


Envío de Mensaje:
-----------------

diego baila.  -> esto es un envío del mensaje #baila, particularmente a
diego.


Una implementación del mensaje (aka un Método):
-----------------------------------------------

PesimoBailador>>baila
   "Los pésimos bailadores no hacemos mas que mover las manos"

   self manos mover.

> > En CLOS uno define por un lado el mensaje, y por otro los métodos que
> > implementan ese mensaje.  En Smalltalk, en cambio, uno no define nunca
> > (al menos como yo lo entiendo) los mensajes, sino que uno implementa
> > métodos.
> >
> > ¿So? ¿Comentamos métodos o mensajes? Si se comenta el mensaje, ¿Cómo se
> > administra la duplicación?.
> 
> Métodos.

Mensajes ;-) Pero NO envío de mensajes, sino el significado del mensaje.

> > Según lo veo yo: Uno NO tendría que documentar métodos (es decir:
> > detalles de implementación) sino que debería escribir el código limpio,
> > que se entienda SIN necesidad de comentarios (hay muchos trucos para
> > eso, y muchos están en el libro de Kent Beck al que hacen referencia).
> 
> Para mi, por el contrario, no deberíamos leer código, deberiamos poder
> confiar en la intención del selector, luego en el comentario y por
> ultimo (si está mal comentado) en la implementación en el lenguaje.

Depende que estés leyendo.  ¿Que querés saber?, opciones:

- Que tendría que hacer *cualquier* objeto cuando recibe un envío de
mensaje particular. Me refiero a un comentario del tipo "Los objetos
bailan cuando reciben este mensaje".

- Que hace UN objeto en particular cuando recibe el mensaje.  Un
comentario tipo "Los pésimos bailadores sólo sabemos mover las manos".

- O como se baila para un determinado objeto:  Para que el receptor
baile, tenemos que enviar el mensaje #mover a las manos.

> > Pero, si documentamos la intención del mensaje, tenemos que administrar
> > la duplicación.
> 
> Y donde comentás un mensaje?

En el Smalltalk actual no hay donde hacerlo, por eso que asumo que si
comentamos mensajes vamos a tener que sufrir la duplicación.

> Uno comenta el método, para _NO_ tener que leer su implementación, por
> sencilla que sea. 

Entonces hay otra duplicación: El comentario vs. la implementación del
método.

> En muchos casos el selector revela la intención,
> pero en otros viene bien que el comentario diga que devuelve tal cosa
> y hace tal otra.
> Si el metodo está factorizado, siendo que el mensaje siempre impacta
> en un método principal, hay que comentar el todo y sus partes, pues
> cada parte hará algo diferente, y por ello está factorizado.
> 
> Saludos.

Comentados saludos,

-- Diego



--~--~---------~--~----~------------~-------~--~----~
  Ha recibido este mensaje porque está suscrito a Grupo "clubSmalltalk" de 
Grupos de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a [email protected]
 Para anular la suscripción a este grupo, envíe un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups-beta.google.com/group/clubSmalltalk?hl=es.

-~----------~----~----~----~------~----~------~--~---

Responder a