我正在重构现有的Java测试类集以进行自动UI测试。有时我最终会在类文件中进行大量更改或完全对其进行修改。这使我认为,当我重写整个课程时,是否应该在注释部分中更改作者姓名?
我在贪婪吗?还是让我看到我的名字并在有疑问的情况下问我会有用吗?
我正在重构现有的Java测试类集以进行自动UI测试。有时我最终会在类文件中进行大量更改或完全对其进行修改。这使我认为,当我重写整个课程时,是否应该在注释部分中更改作者姓名?
我在贪婪吗?还是让我看到我的名字并在有疑问的情况下问我会有用吗?
Answers:
这真的取决于...
如果您认为以后可能会有其他人有兴趣询问原始作者,请在代码中输入他的名字。如果您认为某人可能有兴趣亲自问您,请在其中输入您的名字。而且,如果您认为这两种方法都可行,请输入两个名称(或类似“基于...的工作”的注释)。
当然,如果在工作场所必须强制使用源代码控制,而这是获取源代码的唯一途径,那么就可以避免烦琐的事情,并将每个作者的评论都从源代码中删除。例如,在我的工作场所中,我们在源代码管理中有很多源文件,在这里我们不必费心在源代码中写任何名称。如果我想知道是谁负责文件,过去,或者是特定更改,TortoiseSVN会轻松为我生成该文件的日志。
另一方面,我们有很多VBA宏,这些宏是由某些人编写的,并传递给其他人(其中一些人已经离开公司多年),并且经过大量修改,所有这些都不使用源代码控制。幸运的是,这些文件的注释通常包含作者姓名和某种历史记录日志。
我刚碰到另一篇文章,OP询问作者的名字是否应该在文件头中,并且似乎至少有2/3的回答者说甚至不应该列出该名字,并且应该使用版本控制只需跟踪谁更改了文件即可。不知道该帖子发生了什么,但是现在找不到。<-(因此为匿名“ OP”)
就个人而言,我发现文件头中列出的作者很有用,但原因略有不同(这可能与他们环境中的其他人无关)。即使我们尝试练习社区所有权并经常在项目的各个部分上工作,但我们往往只有很少的团队成员比其他人更了解代码的某些方面。因此,当某人(尤其是来来往往的承包商)打开了一个他们从未见过的文件时,作者就成为了首选。他可能不是唯一的贡献者,甚至不是多数贡献者,但他的名字排在首位,他承认在将有关代码的知识/信息分发给团队的其他成员方面负有一定的责任。我们可以在标题中列出一个以上的人,这实际上是多个人做出的贡献并感到负责。
当我对文件有疑问并且不得不诉诸版本控制来识别主要或最有知识的人时,我的确感到沮丧。然后最终从一个人转到另一个人,因为他们都否认真正知道代码的作用……他们只需要插入并修复一两个错误即可。
这种做法对我们的团队有效,因为我们没有交接。除非有人退出或搬到其他团队,否则该代码/项目将与该人以及我们的团队一起存在。显然,如果维护代码的人与编写代码的人不同,那么没人会在意标头中列出的人。
因此,根据我对文件头的看法,我想说,如果您更改了文件的80%,您会觉得现在您是任何问题的专家(而且您可能应该有这种感觉),是的,并更新文件标题以在上面加上您的名字。如果您对删除以前的人感到不满意,也可以至少在暂时将他们的名字留在那里。您总是可以向原始作者询问,我敢肯定他们不会介意您更改名称,因为我假设您对更改文件本身的80%并不感到难过。
更新:找到了那个帖子。不知道我如何设法从八月开始退缩。我刚读完《实用程序员》,在上一章中,作者讨论了签署工作和问责制(另一篇文章提到了这,这就是我查找它的原因)。这本书非常有道理,现在我考虑一下,也许我们应该介绍团队政策,即列出谁作为作者,应该包含在有问题文件的所有代码审阅中。谁在SVN中更改文件的最后一个或大多数都无所谓,作者是所有者,而且是所有者。
我觉得作者的名字没有什么用。如该问题所示,通常没有单个作者,因此无法命名“作者”。
当然,您可以列出所有做出了重要贡献的人员的列表,但是您已经可以从版本控制日志中获得它了-那么,这有什么意义呢?
在我的项目中,大多数文件中没有作者信息。如果有问题,只需查看日志即可,通常很明显一两个人完成了大部分工作,因此您可以询问他们。
编辑
答案假定使用版本控制的项目。如果您不(始终)使用VC,那么将作者(列表)以及一些更改历史记录放入文件中可能是一种可行的解决方法。尽管如此,您可能应该尽快开始使用VC,在这种情况下,请参见上文:-)。
so what's the point?
不在vcs下的项目,在某个时候迁移到其他vcs的项目(不幸的是,并非所有迁移方案都允许历史迁移),以及同时使用多个vcs的项目-一些FLOSS项目采用了使人们更容易贡献的方法,而不是将它们限制为一个vcs(svn人们发现git很难,git人们发现svn无法使用,我们让人们都嘲笑这两者)
如果对文件进行了重大修改,则可以将您的名字添加为对文件有所了解的人,这是可以接受的。
源文件的创建者应该/必须始终在源文件中提及(IMHO)。加上良好的标题注释,这应该表明作者为什么开发源代码以及他/她对于编写代码的想法。至于代码的维护者,添加维护者的名称对于跟踪源代码控制至关重要。
再次,作者的名字恕我直言,应该包括代码的源版本,版本控制系统之外,更改发生的第一个日期以及更改请求号。原因是,如果决定更改VCS,则存在代码版本的历史记录,作者的身份以及开发人员可以参考的更改请求编号(如果他们需要知道维护者为什么做了他/她做过)。因此,在我们的组织中,我们的格式如下:
/**
* $comment
* <p />
* $cr_number, $date, $author, $description
**/
我对@author评论的政策是:
如果您对某件事有疑问,则文件的@author无关紧要-您要编辑的文件的哪一部分的@author无关紧要。那[git/svn/whatever] blame
是为了什么
IMO,@ author需要离开。