Function 此示例的更好实践:使用函数分解代码或使用注释
有时我会纠结于是应该把代码放在一个更大的块中,还是应该把它们分解成函数。函数可以使它更清晰,因为它分隔了代码,但我觉得有时通过使用注释,清晰度是相同的。我下面的代码是一个C代码,我正在初始化控件 在这里,我可以让它是一个块,也可以把它分成函数。您喜欢这三种类型中的哪一种?为什么?如果代码的每个部分/类别(启用控件、初始标签值、控件属性)都大得多,您的答案会改变吗?也许每个5-15行?让我们假设Function 此示例的更好实践:使用函数分解代码或使用注释,function,coding-style,comments,Function,Coding Style,Comments,有时我会纠结于是应该把代码放在一个更大的块中,还是应该把它们分解成函数。函数可以使它更清晰,因为它分隔了代码,但我觉得有时通过使用注释,清晰度是相同的。我下面的代码是一个C代码,我正在初始化控件 在这里,我可以让它是一个块,也可以把它分成函数。您喜欢这三种类型中的哪一种?为什么?如果代码的每个部分/类别(启用控件、初始标签值、控件属性)都大得多,您的答案会改变吗?也许每个5-15行?让我们假设Initialize()中的代码除了通过函数Initialize()之外不会被重用很多。任何其他批评都是
Initialize()
中的代码除了通过函数Initialize()
之外不会被重用很多。任何其他批评都是受欢迎的。谢谢
protectedvoid Initialize()
{
对于(int i=0;i
或:
protectedvoid Initialize()
{
对于(int i=0;i
或:
private void EnableControls()
{
对于(int i=0;i
其他函数是相同的,因此循环为3。注释是有害的。引用R.Martin的话:“评论是你的失败”。如果您需要编写注释,这意味着您无法以可读的方式编写代码,并且需要一些额外的解释 评论不好的原因:
- 它们是用自然语言编写的,本质上不如代码那么精确,而且通常模棱两可(特别是在多语言团队中,或者在不同级别的非母语人士中)
- 它们变得过时了。很少有人能快速修复一个bug,同时修复评论。而且也没有办法证实这一点
- 它们是噪声-额外的字符,会分散您阅读实际代码的注意力
- 它们为应用程序的代码带来了另一种自由度。即使您在设计注释策略、建立注释格式以及引入关于何时何地放置注释的精确规则方面浪费了大量时间,但不同开发人员的注释规则也会有所不同。第一点中提到了一个可能的原因,另一个原因是很难为自然语言编写精确的规则,这本身就是不精确的。注释标准的精确定义需要大量的规则和指南,并且给开发人员带来了巨大的负担
代码的第二个版本和第三个版本之间的差异毫无意义。如果这些版本中没有一个在代码复制方面更好,那么在我看来,使用哪个版本无关紧要。例如,您可以使用
InitializeLabelValues
而不是Initialize
。注释是有害的。引用R.Martin的话:“评论是你的失败”。如果您需要编写注释,这意味着您无法以可读的方式编写代码,并且需要一些额外的解释
评论不好的原因:
- 它们是用自然语言编写的,本质上不如代码那么精确,而且通常模棱两可(特别是在多语言团队中,或者在不同级别的非母语人士中)
- 它们变得过时了。很少有人能快速修复一个bug,同时修复评论。而且也没有办法证实这一点
- 它们是噪声-额外的字符,会分散您阅读实际代码的注意力
- 它们为应用程序的代码带来了另一种自由度。即使您在设计注释策略、建立注释格式以及引入关于何时何地放置注释的精确规则方面浪费了大量时间,但不同开发人员的注释规则也会有所不同。第一点中提到了一个可能的原因,另一个原因是很难为自然语言编写精确的规则,这本身就是不精确的。注释标准的精确定义需要大量的规则和指南,并且给开发人员带来了巨大的负担