Coding style 是带有作者的代码';谁的名字绝对必要?

Coding style 是带有作者的代码';谁的名字绝对必要?,coding-style,comments,Coding Style,Comments,是否需要在每个函数甚至文件中添加作者姓名的代码 是的,代码将在源代码管理中,如果代码在源代码管理下,许多程序员都会参与,否。 这种数据应该存储在源代码存储库中 如果代码要广泛分发(在没有任何类型存储库的其他环境中),那么是的,这可能很有用。(一些java源代码确实包含此类信息,以及代码的某些演变所依据的版本号) 显然,此类信息(对于广泛部署的代码库)仅在文件级别。 例如,考虑java中的源代码: /** * [...] *此外,该类还提供了许多用于 *将{@code boolean}转换为{@c

是否需要在每个函数甚至文件中添加作者姓名的代码


是的,代码将在源代码管理中,如果代码在源代码管理下,许多程序员都会参与,否。
这种数据应该存储在源代码存储库中

如果代码要广泛分发(在没有任何类型存储库的其他环境中),那么是的,这可能很有用。(一些java源代码确实包含此类信息,以及代码的某些演变所依据的版本号)

显然,此类信息(对于广泛部署的代码库)仅在文件级别。
例如,考虑java中的源代码:

/**
* [...]
*此外,该类还提供了许多用于
*将{@code boolean}转换为{@code String}和
*{@code String}到{@code boolean},以及其他
*常量和方法在处理
*{@code boolean}。
*
*@作者阿瑟·范霍夫
*@version 1.6005/05/07
*@自JDK1.0以来
*/
公共最终类布尔实现java.io.Serializable,
可比{
[...]
您没有从一开始的所有作者,只有最新的作者,与最近修改相关联的最后一个主要版本,以及类的原始介绍版本

这对有帮助,例如,当您想要维护好的API时

但是关于作者的信息仍然局限于文件,而不是函数:他代表类中所有函数的协调器或聚合管理器,尽管随着时间的推移可能有多个参与者


因此,这是一个公共信息,值得明确地放在文件中,而不是作为所有其他元数据(日期、版本、分支、合并信息等)存储的私有元数据(谁写什么)在源代码存储库中。

否。您或您工作的公司隐式拥有版权。但是,出于跟踪目的,可以询问此人该代码后来做了什么。

根据代码完成,注释用于说明代码的目的。将其用于其他目的可能会导致“注释衰减”"

这就是说,跟踪代码所有权、更改日志和最后修改文件的人IMHO是SVN之类的源代码管理repo的工作,不应该出现在评论中。除非它是某种许可证。或者使用IDE的书签系统跟踪谁编写了一个函数,谁是负责人


所有这些都只是我2美分的价值。

是的,这是必需的。如果可能的话,还可以提供日期和名称。这是用于跟踪的目的,也让其他人有权知道该功能的所有者

是的,代码将在源代码管理中

那么就没有了。源代码管理负责跟踪这一点(
责备

特别是对于团队开源项目,指出特定代码段的作者可能是有用的或必要的。但是对每个函数的注释似乎都太多了,特别是因为类的大多数都是由同一作者编写的(n'est-ce pas?)。我喜欢Java库中指定作者的约定对于每一个班级来说,这似乎是一个正确的权衡


另一方面,如果你共同编写了一个类,那么如果其他人在其中编写了错误的代码,你就应该受到责备。我实际上认为这是一件好事。一个类(至少在OOP中)是一个实体,因此质量取决于它的整体质量。如果一个功能不好,整个类也是如此。

在一些项目中,作者姓名可以用来对那些在开发中付出比预期更多努力的人给予应有的赞扬。这样的认可可以提高动机。

对于每个功能,有多少作者这样做一个类有?对于整个类,只指定一次难道还不够吗?@Konrad:是的,我指的是“甚至是文件”OP问题的一部分。我没有看到有关函数的信息。即使在有意义的情况下,作者和版本信息也应该使用正在使用的VCS的RCS关键字功能盖章。依靠工程师手动维护这些信息将导致注释文件中的信息不准确。@John:不确定。1/RCS是“邪恶”(参见关于这个答案的辩论:).2/有意义的案例(公共源代码)应该是指:一个或两个“主要”作者,对进化负责,而不是所有修改过文件的作者。我不确定版权声明是否可以放在元数据中。但VonC的答案更完整。
/**
 * [...]
 * 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> {
[...]