2010-01-01 78 views
0

嗨,我有50页的代码,我应该写评论... 你可以告诉我最好的方法。我的意思是我需要你给我写的......样品, 的意见应该几乎涵盖一切(类,构造函数,属性,方法,事件,函数)如何写评论

+6

-1:做我的家庭作业。你能提供一个更小,更紧凑的片段吗?你能问一些更具体的问题吗? “选择任何部分和表演”是相当粗鲁的,你不觉得吗? – 2010-01-01 13:41:49

+0

不要删除答案提到的代码 – 2010-01-01 14:36:38

+0

嘿,代码在哪里? – 2010-01-01 14:41:09

回答

12

不评论什么是显而易见的像

//The width of the line is 2 
lineWidth = 2; 

//Clones the snapshot 
tempDraw = (Bitmap)snapshot.Clone(); 

有可能是一个好主意,解释为何一定的代码行是存在的。例如,解释为什么

panel1.Invalidate(); 

需要失效。

其基本思想是:在注释中添加额外的信息并将其用于解释,不要创建冗余和重复。

编辑:

您可能还需要解释为什么在工具栏上的每个项目必须是未选中这里:

private void toolStripButton1_Click(object sender, EventArgs e) 
{ 
    foreach (ToolStripButton btn in toolStrip1.Items) 
    { 
     btn.Checked = false; 
    } 
... 
} 

,因为不是从按钮被点击该事件处理程序的名称明显以了解为什么所有按钮都未被选中。

一个很好的注释是这样的:

private void toolStripButton1_Click(object sender, EventArgs e) 
{ 
    //Deselect all previously applied filters because the user clicked "disable all", 
    //which removes the effects of all filters and we want to show this the the user 
    foreach (ToolStripButton btn in toolStrip1.Items) 
    { 
     btn.Checked = false; 
    } 
... 
} 
+3

在我看来,最好将控件重命名为toolStripButtonDeselectAllFilters,而不是将控件命名得如此糟糕,以至于每次引用它时都需要注释来解释它的作用。 – 2010-01-01 14:28:19

+0

马克,当然重构将是最好的选择。但为了“修复”它只使用评论,我想这是最合适的解决方案。 – 2010-01-01 14:40:29

+0

不,不要把时间花在那些无论重要还是必须重做的事情上。什么也不做,或重构。 – 2010-01-01 15:10:31

5

好注释将记录意图,无法正常工作。

使用“赋予x到y”或类似评论来分配作业基本没有用处。

用代码目标最终实现的前提条件和后置条件更高级地评论代码要好得多。您需要评论(比如说)特殊的实现或检查,这些实施或检查是必要的,但与直觉相反,并且可能参考规范文档等。

如果您已经评论50页代码,我怀疑您正在执行此操作在你的项目的错误阶段。我倾向于评论一个类别或方法的意图,其前/后的条件之前的来写它。这是一种迷你规范。

+1

+1。我的“评论”规则是,他们应该告诉*为什么*正在做某件事。代码已经告诉*正在做什么*。 – paxdiablo 2010-01-01 13:51:45

2

你应该花时间写文档现在,你应该重构此代码。从类结构的角度来看,设计是不正确的。你的代码应该尽可能的结构化,这样一个类有一个单一的责任,它试图实现,并有一个相应的名字。

你的Form1(坏名字,b.t.w)确实太多了。它应该要求其他物体来帮助它。你可能想要引入一个Tool类,它知道哪个标签文本和光标是合适的。您可能希望对不同的形状使用继承来以特定于形状的方式执行绘图。这样,你的Form1只需要委托给当前的工具。

通过更好的结构,您可以减少必须编写的文档数量。 你可能想查找CRC卡。

1

我其实刚刚写了一个blog post on this subject。请记住,代码不可能包含任何评论并且完全可读,这是100%可能(但可能不是最好)。