我一直在与DevExpress CodeRush和Refactor合作!亲本周,我选择了一个评论员插件,它会在你输入代码时自动生成评论。
我不想进入挑选基本意义的工作有多好(实际上非常好),但它的默认实现确实引发了一个问题。
默认情况下,键入}字符以关闭某个块会导致插件添加如下所示的注释...
using(MyType myType = new MyType())
{
myType.doWork();
} // using
(即在关闭括号标签的位置添加注释。)
虽然我可以看到有些情况下这种行为可能会有很大用处,但我觉得结果代码看起来非常不整齐,而且所有额外的评论都是如此。
我想知道其他人是什么;对这种评论的看法是。不仅从学术角度来看,如果我收到大量关于他们的负面评论,我可以决定是否将这些评论强加给我的同事或剥离他们。
答案 0 :(得分:21)
我认为这样的评论是没用的,除非代码很糟糕。通过正确格式化代码,不难看出块的开始位置和块结束的位置,因为通常这些块是缩进的。
编辑: 如果一个过程太大而且不容易明白哪个代码块被一个大括号关闭了,那么应该已经有更多的描述性描述来描述这个过程,这些注释就会变得杂乱无章。
答案 1 :(得分:9)
我发现一个插件的想法是从代码中产生评论而没用。如果它可以由机器推断,那么任何阅读它的人也可以推断它。这些评论极有可能完全是多余的。
我觉得那些大括号评论很混乱,如果个人需要,它会提供最好由IDE直接提供的信息。
答案 2 :(得分:4)
IMO描述代码已经告诉你的每条评论都是不必要的。
如果你真的有很长的代码块,你必须滚动很多,看看那里开始你做错了什么,可能会考虑拆分代码。
答案 3 :(得分:4)
糟糕的评论风格 - 它在代码库中引入了维护开销。
我认识ex-VB编码器,他们在C语法代码中发现}
s的路径令人困惑,但在这种情况下,真正的解决方法是重构代码以防止深度嵌套和过长的功能和/或代码块。
答案 4 :(得分:3)
如果使用块扩展到IDE中的某个页面,则可能有用,但是您还需要担心其他问题。在这种情况下,我选择了一个适当的缩进和一个IDE,当我选择一个时突出显示匹配的括号。
一般情况下,我会大打折扣,但如果你无法避免长时间阻挡,可能会有用。
答案 5 :(得分:3)
有时你会得到非常大的代码块,或者很多嵌套的块一起关闭。我有时会在这种情况下使用这种风格,但绝对不是所有时间。我也不限制它编码:HTML可以从这种“密切评论”风格中受益匪浅:
<div id="content">
<div id="columns">
<div class="column">
<!-- .. snip a lot of lines .. -->
</div> <!-- .column -->
</div> <!-- #columns -->
</div> <!-- #content -->
答案 6 :(得分:2)
这种注释仅适用于有很多嵌套块的很长的代码块。但是,由于许多嵌套块和长方法需要重构,因此首先应该不是这种情况。 所以我根本不喜欢这个,因为读者显然可以看到它是什么代码块。
答案 7 :(得分:2)
我认为比评论更有用的是IDE功能,不仅可以突出显示匹配的大括号对,而且还可以在工具提示上显示开放线,这样如果你在示例中悬停在右大括号上,它就会出现“在工具提示中使用(MyType myType = new MyType())”。
这将使您能够轻松理解大型函数的复杂嵌套大括号,而不会产生持续的视觉混乱。
答案 8 :(得分:2)
我总觉得记住这个很有用......
清晰,编写良好的代码将提供足够的解释 代码正在为有能力的程序员提取的内容。
应在代码中留下评论,以解释代码正在执行的原因!
换句话说,使用注释来帮助代码的读者理解算法,或代码应该实现的内容,而不是 实现它的方式!< / p>
答案 9 :(得分:1)
不要这样做,如果在整个地方使用它只会增加噪音,除了适当的缩进应解决可读性问题。
答案 10 :(得分:1)
我会保持关闭状态。当你有多个块在同一个地方(更长或更短的块)结束时,我只看到使用它的一点 - 我在某些情况下自己使用过它们。但是,如果使用它们,最好在精心挑选的地方手动添加它们,而不是添加一些自动工具。
答案 11 :(得分:0)
如果您必须考虑某种类型的评论是否可用,则最有可能是后者。
评论用于解释某些代码块或整个实体,以便于理解;不要使格式更容易阅读。
让插件总是符合这种行为既肥胖又难看。
答案 12 :(得分:0)
我同意有更好的方法来描述代码正在做什么。
如果您有一长串代码,前面有一条信息性评论,例如 //修复工作项,您可以获取该代码并将其重构为自己的方法。然后使用注释作为新方法的名称FixWorkItem()。这样做是一种快速的方法,可以使您的代码更加自我记录,甚至可以揭示您之前没有注意到的一些设计特征。
请留意像这样的单行注释作为潜在的重构,可以由IDE自动处理。文档本身的代码甚至比最好的独立注释更好,当然除了描述意图时。