函数/方法中的空行

Axa*_*dax 5 coding-style

在我们公司的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:允许程序员在逻辑上将功能分开,这样可以提高可读性,因为某些类型的视觉提示可以让眼睛跟随

反对:降低可读性,程序员应该使用注释来分隔函数的各个部分.

我的个人意见是允许在函数中留空行,因为没有它们,长片代码看起来像一条永无止境的行流,没有任何关于在哪里找到我正在寻找的东西的线索)

Anu*_*rag 8

那将是一场精彩的决斗。就像最后一个场景一样,The Good, The Bad, and the Ugly但方法是空白而不是金色。

老实说,除非您需要经常仔细考虑团队中其他人的代码,否则这根本不重要。就我个人而言,我完全赞成空白,因为它提供了逻辑分组。但对其他人来说可能不一样。哎呀,随着时间的推移,即使是我也可能会改变我对事物的分组方式。以前有意义的分组项目可能不再有意义。

不管我们如何对项目进行分组,我认为分组非常重要。我们可以争论为什么空行是不必要的,但事实是大脑一次只能处理有限的信息。因此,如果我可以将函数理解为由三个子组组成,而不是由十个语句组成,那就会有很大的不同。按注释分组对于您的 IDE 来说是主观的。大多数 IDE 的颜色都比代码的其余部分浅,这给人一种分离的感觉,但这成为 IDE 特定的。

因此,要论证这一点,一切都与分组有关。如果一个类变得太大,为了便于理解和维护,我们必须将其分解。同样,如果方法内的连续代码行变得太多而难以掌握,则必须分解更多方法或在逻辑上用空白换行符分隔开。

另外,如果论证毫无进展,可以随意添加一些东西,比如这些空行与佛教的虚无概念有何关系等等。

  • “对于空白,因为它提供了逻辑分组”,以及“我认为分组非常重要”:这就是函数的用途。如果它是不同的逻辑块,请给它一个名称。你的代码会变得更好。 (2认同)

yeg*_*256 8

我认为方法体中的空行是代码味道.阅读此博客文章关于这个主题:空行是一个代码气味.简而言之,方法体中的空行是一种不好的做法,因为方法不应包含"部分".方法应该总是做一件事,它的功能分解应该由语言结构(例如,新方法)完成,而不是由空行完成.