在程序的注释中放置指向问答站点的链接可以吗?


16

在相当多的代码库中,您可以看到说明如下内容的注释:

 // Workaround for defect 'xxx', (See bug 1434594 on Sun's bugparade)

所以我有几个问题,但是它们都是相关的。

将指向SO问题的链接放在程序的注释中是否可以:

 // We're now mapping from the "sorted-on column" to original indices.
 //
 // There's apparently no easy way to do this in Java, so we're
 // re-inventing a wheel.
 //
 // (see why here, in SO question: http://stackoverflow.com/questions/951848)

你做得到吗?

这样做的缺点是什么?(有关严重缺陷,请参阅我的第一条评论)


9
自言自语:这样做的一个非常令人担忧的缺点是,由于SO是一个Wiki,因此您所依赖的答案仍然正确(甚至仍然存在)的保证为零。哎呀,在某些情况下,问题本身可以关闭,也可以从其原始含义更改。Sun的Bug游行上的“ See bug 1434594”之间的巨大区别在于,您可以确保 Sun的Bug链接中的文本不会更改(如RFC2119所定义的“不得”)。这是巨大的:SO是一个Wiki这一事实使我很紧张,因此无法在评论中添加SO链接。
特里斯坦街

7
最好的选择是对SO答案进行简洁明了的总结,然后在其下放置参考链接。我已经几次这样做了。这样,如果SO陷入困境或答案被删除/编辑,则所需的核心信息仍在摘要中。现在,根据答案的复杂程度,编写摘要可能是一件完全独立的工作。如果SO答案链接到其他内容,则值得将其链接到其他内容(特别是如果它们比SO答案短暂的话)。
FrustratedWithFormsDesigner

5
@Robert S .:不,这不是meta。它不是关于SO的:我正在接受SO的方式。这特别是关于如何从注释中处理类似SO的资源。
Tristan St.

1
您是否在谈论为团队编写的代码?问他们。

1
您始终可以将整个网页另存为完整的网页,将其压缩并放入文档文件夹中。

Answers:


7

我已经做到了,也许不是专门针对Stack Overflow,但对于技术博客,论坛,Usenet,Google网上论坛或其他任何地方,“我为什么这样做”的地方从上下文中可能并不清楚。

我不明白为什么像这样使用SO会是一件坏事,除非他们存档并清除旧问题(我不认为他们会这样做,但我不确定),但是即使他们这样做了,也不会比其他网站差。

如果您真的很担心,可以随时获取屏幕快照或将这些页面作为文本下载(或解决获取图像,样式表等的麻烦),然后将其保存到公司的知识库中,并附加一个唯一标识符,然后将该唯一标识符放入您的注释中,以供以后引用-这样,对于这种类型的事情,您将拥有一个统一的位置。但是,这可能会过高,这取决于代码的复杂性和重要性。


5

通常,创建此链接的​​最佳方法是通过版本控制系统和/或错误跟踪系统。但是,要使此功能有效,就要求您可以将代码准确地链接到Bug跟踪器或版本控制系统中放置注释的位置。


那很有趣:所以您实际上是在建议一个SO答案的情况下,我可以获取HTML并将其存储在DVCS中(Mercurial,但这不是重点)?
Tristan St.

好吧,通常您不需要整个东西,只需要相关的部分吧?您可以参考来源。

5

理想情况下,您的代码不需要这样的注释,因为它的结构合理,等等。但是是的,当您的情况不理想时,可以这样添加注释。而且指向stackoverflow.com的链接也比其他链接好(而且通常更好!)。

希望它们是临时注释,您将被允许返回并改进代码并删除这些注释

我尚未在代码中放置StackOverflow.com链接。我尝试避免在代码中放置链接,因为这是一种难闻的气味,但是当时间到来时,我会毫不犹豫的。

编辑:我想我上面的答案给人的印象是这样的评论需求是可以避免的。当然,有时是可以避免的; 这是您无法控制的库错误或API设计错误。这样的注释(包括链接)对于接下来的开发人员很有帮助。


2
嘿,看看那一种,我希望有一种“更清洁”的方式来处理它,但是通常不是这种情况stackoverflow.com/questions/951848 我的意思是,错误和不一致/怪异的API,未记录的行为等。是我们程序员生活的一部分:)
Tristan St.

2

我认为这就像写研究论文一样。如果我使用别人的想法,那么我需要赞扬那些想法。我以前在代码中使用过stackoverflow的答案,并且将链接添加到方法的注释中。

就像有人提到的那样,SO是一种Wiki样式,因此它可能会发生变化,但是通常情况下,想法应该是相同的。

当您使用别人的想法时,您仍然应该赞扬别人。


1

如果您需要实施变通方法,并且不清楚为什么以某种特定的方式实施,那么应该使用注释来确定原因。我认为放置指向在线参考的链接很好,但是您确实需要使您的评论简洁明了,但要足够完整,以使该链接仅在读者感到需要仔细检查您的推理时才提供扩展的解释。

另一方面,如果代码是逐字复制的,那么指向原始来源的链接才是公平的,根据允许您复制原始作者作品的许可字词,可能需要链接。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.