在我们公司的Xmas派对上,我们几乎在一个问题上进行了物理斗争:是否允许在我们的代码中使用函数/方法中的空行(c/c ++/c#).这只是关于单个空行,例如想象代码如:
private void LoadData()
{
if (!loaded)
return;
DataStore coll;
SqlData s = new SqlData();
if (!s.CallStoredProcedureToStore(out coll, "xy.usp_zzz",...))
return;
dataViewXy.BeginUpdate();
dataViewXy.Items.Clear();
for(int i = 0; i < coll.RowCount; i++)
{
dataViewXy.Items.Add(coll[i]["ID"]);
}
dataViewXy.EndUpdate();
}
Run Code Online (Sandbox Code Playgroud)
这是一个荒谬的混合,只是为了说明情况 - 第一个功能块加载数据,第二个填充某种数据控制,空白行分隔它们.
人们还应该写各的"块",再发表评论,但重要的是,对于人会地方的评论之前的空行,在对人不会.
For:允许程序员在逻辑上将功能分开,这样可以提高可读性,因为某些类型的视觉提示可以让眼睛跟随
反对:降低可读性,程序员应该使用注释来分隔函数的各个部分.
我的个人意见是允许在函数中留空行,因为没有它们,长片代码看起来像一条永无止境的行流,没有任何关于在哪里找到我正在寻找的东西的线索)
那将是一场精彩的决斗。就像最后一个场景一样,The Good, The Bad, and the Ugly但方法是空白而不是金色。
老实说,除非您需要经常仔细考虑团队中其他人的代码,否则这根本不重要。就我个人而言,我完全赞成空白,因为它提供了逻辑分组。但对其他人来说可能不一样。哎呀,随着时间的推移,即使是我也可能会改变我对事物的分组方式。以前有意义的分组项目可能不再有意义。
不管我们如何对项目进行分组,我认为分组非常重要。我们可以争论为什么空行是不必要的,但事实是大脑一次只能处理有限的信息。因此,如果我可以将函数理解为由三个子组组成,而不是由十个语句组成,那就会有很大的不同。按注释分组对于您的 IDE 来说是主观的。大多数 IDE 的颜色都比代码的其余部分浅,这给人一种分离的感觉,但这成为 IDE 特定的。
因此,要论证这一点,一切都与分组有关。如果一个类变得太大,为了便于理解和维护,我们必须将其分解。同样,如果方法内的连续代码行变得太多而难以掌握,则必须分解更多方法或在逻辑上用空白换行符分隔开。
另外,如果论证毫无进展,可以随意添加一些东西,比如这些空行与佛教的虚无概念有何关系等等。