2009-09-02 7 views

Respuesta

20

Según Code Complete, los comentarios se utilizan para ilustrar el propósito del código. Usarlo para otros fines puede dar como resultado un "deterioro del comentario".

Dicho esto, el seguimiento de la propiedad del código, cambio de registro y quién modificó por última vez el archivo, en mi humilde opinión, es el trabajo de un repositorio de control de fuente como SVN y tal, y no debe estar dentro de los comentarios. A menos que sea una licencia de algún tipo. O use un sistema de marcadores de IDE para realizar un seguimiento de quién creó una función y quién es la persona responsable de la misma.

Sin embargo, todo esto es solo mi valor de 2 centavos.

16

Si el código está bajo control de código fuente, no.
Ese tipo de datos deben almacenarse en el repositorio de código fuente.

Si el código está destinado a ser ampliamente distribuido (en otro entorno sin ningún tipo de repositorio), entonces sí, eso podría ser útil. (Algunas fuentes java sí incluyen ese tipo de información, así como el número de versión de la que alguna evolución del código están disponibles)

Obviamente ese tipo de información (por código base ampliamente desplegado) es a nivel archivo solamente.
Considérese, por ejemplo, el código fuente de java.lang.Boolean en Java:

/** 
* [...] 
* In addition, this class provides many methods for 
* converting a {@code boolean} to a {@code String} and a 
* {@code String} to a {@code boolean}, as well as other 
* constants and methods useful when dealing with a 
* {@code boolean}. 
* 
* @author Arthur van Hoff 
* @version 1.60, 05/05/07 
* @since JDK1.0 
*/ 
public final class Boolean implements java.io.Serializable, 
    Comparable<Boolean> { 
[...] 

Usted no tiene todos los autores desde el principio del tiempo, sólo el más reciente, con la última versión principal asociado para la modificación más reciente y la versión para la presentación original de la clase.

Eso puede ayudar para API tooling por ejemplo, cuando desea mantener buenas API.

Pero la información sobre el autor todavía se limita al archivo, no a las funciones: representa al coordinador o al gerente de agregación para todas las funciones presentes en la clase, aunque puede haber habido más de un colaborador a lo largo del tiempo.

Como tal, este es un público información , digno de ser puesto explícitamente en el archivo, en lugar de un meta-datos privados (que escribe qué), almacenada como todos los otros meta-datos (fecha, version, branch, merge information, ...) en un repositorio de código fuente.

+0

... para * cada función *? ¿Cuántos autores tiene una clase? ¿Y no sería suficiente especificarlos una vez, para toda la clase? –

+0

@Konrad: cierto, me refería a la parte "incluso los archivos" de la pregunta del OP. No he visto esa información sobre las funciones. – VonC

+0

Incluso en los casos en los que tiene sentido, el autor y la información de la versión deben sellarse utilizando la función de palabras clave RCS del VCS que se está utilizando. Confiar en que los ingenieros mantengan esta información en forma manual * * dará lugar a información inexacta en el archivo de comentarios. –

1

No. Usted o la empresa para la que trabaja tienen implícitamente derechos de autor. Pero dicho esto con fines de seguimiento, puede ser útil preguntarle a esa persona qué hizo este código más tarde.

+1

Eso es lo que SCC es para ... –

+0

No estoy seguro de que los avisos de derechos de autor se puedan colocar en los metadatos. Pero la respuesta de VonC es más completa. –

-1

sí, es necesario. También si es posible, indique la fecha junto con el nombre. Se usa con fines de seguimiento y le da privilegio a otros para conocer al propietario de esa función.

2

Sí código estará en control de código fuente

entonces no.El control de fuente se encarga de rastrear esto (blame).

Especialmente para proyectos de equipo de OpenSource, podría ser útil o necesario indicar el autor de una pieza de código en particular. Pero comentar sobre cada una de las funciones parece realmente excesivo, especialmente porque la mayor parte de una clase será escrita por el mismo autor (n'est-ce pas?). Me gusta la convención de la biblioteca Java de especificar el autor (es) para cada clase. De alguna manera, esta parece ser la compensación correcta.

Por otro lado, si eres coautor de una clase, tienes la culpa si alguien escribe mal código en ella. De hecho, creo que esta es una buena cosa . Una clase (en OOP, al menos) es una entidad, por lo que la calidad está determinada por su calidad general. Si una función es mala, también lo es toda la clase.

0

En algunos proyectos, los nombres de los autores se pueden utilizar para dar el debido crédito a alguien que pone más esfuerzo en el desarrollo de lo que se esperaba de él. Tal reconocimiento puede mejorar la motivación.

Cuestiones relacionadas