我迷失在自己的代码中

I am getting lost inside my own code

本文关键字:代码 自己的 迷失      更新时间:2023-10-16

我注意到在编写多个代码屏幕时,我经常迷路。我的大部分代码都是C++的,这往往很长,而且我使用的是带有Xcode9的Mac。

我还没有找到像 Xcode 小地图这样的解决方案(我发现的那些似乎已弃用)。我几乎对所有内容都使用评论,但它们往往看起来很相似,所以似乎没有多大帮助......

有人有什么建议吗?良好做法还是什么?

谢谢

我几乎对所有内容都使用注释

如果注释只是重复您的代码正在执行的操作,请跳过它们。注释应提供无论如何都不明显的其他信息。例:

++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();
}

至少在源文件中,至少在源文件中,将这些函数放在代码中紧密地结合在一起(不过,您可以将内联函数移动到类的私有部分以保持公共接口干净)。

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