问题描述
|
我不确定应该在源代码中的哪里添加新的空白行。我想编写易于阅读和理解的漂亮代码。
是仅基于对象还是基于概念?举例说明对我来说是最有帮助的。
解决方法
我个人不使用太多垂直空格-其他人会推荐比我在下面描述的更多的空格。只要分开的东西之间有某种视觉上的分隔,我想看看代码,而不是空白行。我倾向于说:
非成员函数之间(以及在C ++中,在类外部定义的成员函数之间)的空白行
类之间的单个空白行。
与后面的多个函数/类相关的注释之前和之后的空白行,即在代码中定义了“ sections”:“用于XML处理的辅助函数”,即此类注释。
类中的成员函数之间没有空白行
函数内部通常没有空行。如果一个函数处于多个阶段,则可以在它们之间插入空白行,或者仅在它们之间进行注释以解释这些阶段。很长的函数很可能以这种方式与空格分开,而不是我认为很长的函数特别好。如果成员函数确实具有内部空白行,则通常也将其与类中的其他成员函数分隔开空白行。
在我看来,连续的两行空白行有点让人怀疑,而我自己从来没有这样做过。三只浪费了我显示器上的完美空间-谁想要将IMO分开的东西放到其他文件中。
自动文档的注释块(Javadoc,Doxygen,Pydoc等)还提供了视觉上的分隔-比几行空白更多,并且比任何数量的空白更有生产力。
在团队中工作时,请复制您修改的任何文件的样式。请勿重新设置其格式以匹配您自己的偏好,请勿使用您喜欢的格式添加新代码。要么同意一种房屋风格,要么就可以与之共存。
,我认为这是个人喜好或公司标准的问题,但是在办公室,即使我们有一些准则,每个人都有编写代码的方式,而空格是其中之一。
我喜欢使用很多空白行。每当我的代码的上下文发生变化时,我就将这一部分与上一个和下一个部分分开,并在前面注释整个块。
,这取决于您自己的喜好或公司的准则,必须在其中创建回车。实际上,这样的指导方针还将决定您放置空间,标签和呼吸方式的位置。好吧,也许不是最后一个。
但是,如果您是一个人,并且想要简洁明了的编码方式,则可以始终考虑实现Microsoft StyleCop。它可以控制您的编码习惯,因此您可以根据需要将其配置为严厉。
,这可能是个人喜好或家庭风格的问题。
我在函数之间以及较大的函数调用中的逻辑块之间包括空白行。
,我的代码标准是:
在每个if / else语句之后(最后的
}
)
每种方法之后
在每个属性之后,由多行组成
收场后
例:
string a = \"Note: \",b= \"This\",c= \"A\",d= \"String\",e= \"Test\";
int f=1,h=1;
string A { Get; Set; }
string B { Get; Set; }
string C { Get; Set; }
string D
{
Get
{
Return this.d;
}
Set
{
if (value == \"Foo\")
{
// DoSomething
}
this.d=value;
}
}
//empty line
,请查看StyleCop以获得源代码布局:http://stylecop.codeplex.com/。
我还建议使用FxCop或ReSharper。
另外,用Control K D布置文档,但不对空白行进行排序吗?
,就像每个人都表示每个人都有自己的做法一样。就我而言,我喜欢一贯地做一些事情。
注释前后的空白行多于一行。
每个班级的前后至少有两个空行。
功能由一行分隔。
其他空白行是更可选的。这里的事情是,我喜欢注释和类突出。通常,适当的缩进将满足大多数其他需求。这里的窍门是除非有必要,否则不要浪费垂直空间。
如果您必须使用其他人的代码,我想如果他们遵循相同的空白时间表,您会感到很高兴。迷失在函数或类定义中可能会很麻烦。
,只是个人观点,但我认为您绝对不应在代码中使用空行,尤其是在函数内部。
如果函数是如此复杂,以至于我们正在考虑放置空白行以使其更易理解,那么它可能需要进行一些重构,而不是空白行。
即,考虑以下简化的php代码段:
function doStuff(){
$a = new A();
$result = $a->foo();
$b = new B();
$result += $b->bar();
return $result;
}
我认为会更好:
function doStuff(){
$result = $this->processA();
$result += $this->processB();
return $result;
}
这样,您仍可以提高可读性,而不会浪费文件空间。
我经常使用笔记本电脑工作,不得不在文件中滚动很多,这很烦人。如果代码可以干净并且避免不必要的空行,那么开发和理解起来会更快。