我有很多用各种语言编写的源代码文件,但没有一个在顶部有标准注释(有时甚至在同一个项目中)。其中一些根本没有任何标题评论: - )
我一直在考虑创建一个标准模板,我可以在源文件的顶部使用,并且想知道我应该包含哪些字段。
我知道我想要包含我的名字和文件包含/做的简短描述。我还应该包括创建的日期吗?上次修改日期?上次修改文件的程序员?你发现哪些其他领域有用?
欢迎任何提示和评论。
谢谢,
卡梅伦
答案 0 :(得分:16)
这似乎是一种垂死的做法。
StackOverflow上的一些人完全反对代码注释(推断代码应该被编写为自我解释)虽然我不会那么远,反评论人群的一些观点是有道理的,例如事实上,评论往往过时了。
评论标题块更容易受到这些症状的影响。我所在的每个组织都有这些标题块,它们已经过时了。他们有一个作家的名字甚至不在那里工作,一个完全不符合代码的描述(假设曾经做过)和最后修改日期,曾经与版本控制历史相比,似乎错过了它的最后十几个更新。
在我个人看来,请将评论贴近代码。如果您想了解代码文件的目的和/或历史记录,请使用您的版本控制系统。
答案 1 :(得分:9)
创建日期,修改日期以及上次更改文件的作者应存储在源代码管理软件中。
我通常会说:
答案 2 :(得分:1)
您需要哪些领域?如果你不得不问是否在那里放一些信息,你真的不需要那些信息。除非你被强迫,由于你的雇主的一些官僚无能,我不明白为什么你应该去寻找比你已经觉得应该在那里更多的信息。\
答案 3 :(得分:1)
您没有提到您使用的是版本控制系统,而您在Neil N的回答中的评论会为您的旧代码确认这一点。虽然使用版本控制是最好的方法,但我也经历过许多情况,即旧项代码的成本不会由项目的赞助商支付。如果您没有项目的集中更改历史记录,则可以将更改历史记录放入模块中。您为新代码使用版本控制系统是件好事。
Your company name
All rights reserved (c) year - or reference to appropriate license
Project or library this file is for
Module it belongs to
Description of what it contains
History
-------
01/08/2010 - Programmer - version
Initial creation.
01/09/2010 - Programmer - version
Change description.
01/10/2010 - Programmer - version
Change description.
答案 4 :(得分:1)
在大多数组织中,所有源文件都必须以合法的模糊开头。如果你真的很幸运,它只是一个单行,但在大多数情况下,它是一个非常长的法律术语块。结果,很少有人读过这些。我们的眼睛只是前往第一个程序元素,然后转到其文档。
因此,如果您想要编写任何内容,请将其与最顶层的程序元素相关联,而不是文件。
任何其他簿记信息通常应该是您的版本控制的一部分,而不是文件本身的维护(不良)。
答案 5 :(得分:1)
除了上面的注释说明许可证,它所属的项目等,我也倾向于将“怪异”的要求放在顶部(例如“用库Y的X版本构建”)所以你或者在你没有意识到改变程序所依赖的东西之后接受它的人(或者,如果他们这样做,他们至少会知道要改变什么)
答案 6 :(得分:1)
早在2002年,当我刚刚大学毕业,互联网泡沫破灭后,工作几乎没有,我加入了一家服务公司,该公司过去常常用Java为客户定制软件。我不得不坐在客户的办公室里(这是一个装有AC的电子分站的摇摇欲坠的房间,以保持服务器运行),与团队中的其他人共用椅子/ PC。其他工程师(如果我可以称之为工程师;)在用于对源代码进行临时更改的组中,编译文件并将其投入生产。
由于将文件复制到服务器的拙劣尝试导致生产服务器停机的报告(错过了要复制的文件,丢失的备份或者复制了错误的文件或者没有复制的所有文件)都遭到了耸肩(哦,不,它失败了吗?让我们看看发生了什么;嘿谁最近改变了什么...?嗯......)。
在那些日子里,在花了几个令人沮丧的日子试图弄清楚代码背后的原因和原因后,我在源文件的标题列表中设计了一个注释系统,详细说明如下:
两个月后,当列表威胁要挑战文件中源代码的大小时,管理员明白了获得源版本控制系统。
我从来没有需要在我工作的任何公司的任何公司的源文件(除版权声明)的标题中添加任何注释。在我目前的公司中,通过查看代码或访问与源版本控制系统集成的错误报告系统,其他所有内容都是不言而喻的。
答案 7 :(得分:1)
很大程度上取决于您是否使用自动文档生成工具。
虽然我同意许多评论,但如果您使用的是JavaDoc或其他依赖于评论的文档生成工具,那么您显然需要包含它想要查看的内容。
答案 8 :(得分:0)
你提到的那些有用的领域是好的。谁修改了文件。
您的版本控制软件应允许在评论中嵌入关键字。例如,在CVS中,$ Id $将解析为文件,修改日期/时间以及修改文件的用户。每次办理登机手续时都会自动更新。
答案 9 :(得分:0)
包括以下信息:
你不应该不包含的东西是
您可以 - 并且应该 - 通过版本控制系统检索它,它会不断地自动保持最新状态。更不用说大多数这些点都没用了。
答案 10 :(得分:0)
谁创建了文件 创建时间 上次是谁修改的 上次修改时间 最新修改添加了什么