2010-03-05 11 views
5

Me encontré con este dilema cuando trabajaba en una aplicación web ASP.net utilizando Web Client Software Factory (WCSF) en C#, y lo mismo podría aplicarse a otra plataforma e idiomas. Mi situación es la siguiente:¿Cómo deberían ser diferentes los comentarios para la interfaz y los métodos de clase?

estoy definiendo un I Ver interfaz para cada control de la página web/usuario en función de paradigma WCSF, a continuación, tienen la clase de página implementar el I interfaz de Vista, básicamente, la implementación de cada uno de los métodos definidos en La interfaz. Cuando traté de agregar xml-documentation en el nivel de método, básicamente me encontré repitiendo el mismo contenido de comentario para ambos métodos de interfaz y su contraparte en la clase de implementación.

Así que mi pregunta es: ¿debería haber alguna diferencia sustancial entre el contenido de la documentación en el método de la interfaz y el método de clase correspondiente? ¿Deberían estar enfatizando en un aspecto diferente o algo así?

Alguien me dijo que el comentario del método de interfaz debería decir "qué" se supone que debe hacer el método, y el comentario del método de clase debería decir "cómo" lo hace. Pero recuerdo haber leído antes que el comentario del nivel de método solo debería decir "qué" se supone que debe hacer el método, nunca el detalle de implementación del método, ya que la implementación no debería ser una preocupación para los usuarios del método y podría cambiar.

Respuesta

8

Personalmente, creo que estos comentarios deberían ser los mismos: ambos deberían decir "lo que el método va a hacer", en sus términos.

No hay ninguna razón para que los comentarios XML mencionen los detalles de implementación. La única excepción, potencialmente, sería mencionar los posibles efectos secundarios (es decir: este método puede llevar mucho tiempo), pero yo personalmente lo haría en la sección <remarks> de los comentarios del documento XML.

+0

Esta es la respuesta de la que realmente tenía miedo :), pero creo que tienes razón. Me pongo rápidamente repitiendo el mismo contenido en ambos lugares. Copiar y pegar ayudó a acelerarlo, pero el hecho de que estoy haciendo eso me desconcierta ... – hongliang

+1

@hongliang: si está implementando una interfaz, obtenga una copia de GhostDoc: le permitirá usar una sola clave para completar los comentarios del documento XML para la clase implementadora y copiar los comentarios de la interfaz. Muy hábil: http://submain.com/products/ghostdoc.aspx –

+0

¡Guau! Eso es exactamente lo que me gustaría. ¡Gracias! – hongliang

4

Llámame un loco, pero usaría un nombre descriptivo para el método y lo llamaría un día (no hay comentarios para ninguno de los dos). Podría agregar comentarios a la implementación si algo es sorprendente o por qué no es obvio.

+6

En realidad estoy en desacuerdo bastante fuerte. Comentar métodos (con comentarios breves y significativos) usando comentarios de documentos XML es muy valioso, especialmente si se trata de una API que puede ser utilizada por otras personas ... No hay sustituto para los mensajes significativos en intellisense que obtienes de los comentarios de docs xml. –

+0

Gracias. Estoy de acuerdo en que el nombre debe ser descriptivo, lo que hará que los comentarios sean aparentemente redundantes. Sin embargo, mi propia experiencia me dice que a veces, solo hay mucho que decir con un nombre, a menos que no te importen los nombres ridículamente largos con "When" sy "If" s in it. – hongliang

+1

Si la persona que llama debe preocuparse por todos los "cuándo/si" de cómo se implementa un método de llamada, es decir, el diseño de los comentarios de sus objetos tiene demasiado acoplamiento. –

Cuestiones relacionadas