我迷失在自己的代码中

时间:2018-03-23 07:40:20

标签: c++ xcode

我注意到在编写多个代码屏幕时,我经常会迷路。我的大多数代码都是C ++,它往往很长,我使用的是Mac和Xcode9。

我没有找到类似Xcode的小地图的解决方案(我发现的那些似乎已被弃用)。我几乎所有的东西都在使用评论,但它们往往看起来很相似所以它似乎没什么帮助....

有没有人有任何建议?好的做法还是其他什么?

由于

1 个答案:

答案 0 :(得分:5)

  

我正在使用几乎所有内容的评论

如果评论只是重复你的代码正在做什么,请跳过它们。评论应提供其他信息,这些信息无论如何都不明显。例如:

++i; // increment i

那完全没用......

// need to increment i BECAUSE otherwise...
// need to increment NOW, earlier/later causes this or that problem
++i;

在上述情况下,可能并不明显为什么你完全增加或者为什么必须在这里完全而不是在另一个地方完成。所以你解释一下。

当您需要评论时,如果您在一段时间(几周或更长时间)后回到您的代码并发现您不能立即理解您自己的代码,但是必须考虑您做了什么,这是一个很好的提示。这里...

提高可读性的另一种方法是将缩进级别保持在低水平:

if(a)
{
    if(b)
    {
         if(c)
         {
         }
    }
    else
    {
    }
}
else
{
}

经常(但不总是)可以转化为:

if(!a)
{
}
else if(!b)
{
}
else if(!c)
{
}
else
{
}

有时这会产生如下代码:

else if((x = f(y)) == z)

承认,也不好读。我个人认为减少if-else链的缩进深度是值得的,但在这种情况下,你应该自己决定...

如果功能太大,可以将它们分成小块:

if()
{
    // large code block
}
else
{
    // another large code block
}

inline void f()
{
    // large code block
}
inline void g()
{
    // another large code block
}

if()
{
    f();
}
else
{
    g();
}

将这些函数保持在代码中,至少在源文件中(您可以将内联函数移动到类的私有部分以保持公共接口清洁)。

如果您的源文件变得非常大,则可能暗示您将多个不同的东西打包到同一个类中。然后考虑一下你是否可以合理地将部分导出到当前类可以聚合的单独类中(例如,低级函数到某种驱动程序类,高级函数然后使用这个新驱动程序)。这提供了额外的好处,您可以在其他不同的高级实现中重用驱动程序。