如何对if语句最具可读性发表评论

Gal*_*len 7 language-agnostic comments

我正在尝试让未来的读者轻松理解我的代码.

我一直有问题如何发表我的if语句评论,以使其最容易理解.

也许它似乎微不足道,但它总是困扰着我

这是一个例子:

if ( !$request ) {
    $request = $_SERVER['REQUEST_URI'];
}
Run Code Online (Sandbox Code Playgroud)

以下是我可以想到评论它的一些方法

// If request doesn't exist
if ( !$request ) {
    // Set request to current request_uri
    $request = $_SERVER['REQUEST_URI'];
}

// Check for a request
if ( !$request ) {
    $request = $_SERVER['REQUEST_URI'];
}

// Request doesn't exist
if ( !$request ) {
    // Set request
    $request = $_SERVER['REQUEST_URI'];
}
Run Code Online (Sandbox Code Playgroud)

不是最好的例子,但我看到它的方式有无限的方式来表达它.

我从来没有真正在团队工作过,所以我对其他人阅读我的代码没有多少经验.

您有什么经验可以说出最好的方法来使其对未来的编码人员具有可读性.

小智 9

对于您提供的案例,我根本不会对它们发表评论.在执行非常棘手或非显而易见的事情时,我只在方法/函数体中使用注释 - 我试图避免两件事.只需在方法的开头加上一条简短的评论.


Kat*_*one 9

在这个特定的例子中,我不打算评论if语句 - 你正在重复代码中所说的内容.

我可能会看到测试代码很复杂的情况:

if (a == 3 && b && c > 2)
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我会首先尝试提取一个有意义名称的方法:

if (markerIsValid(a, b, c))
Run Code Online (Sandbox Code Playgroud)

只有当那是不可能的时候,我才会评论测试.

  • +1 - 不仅提取自身文档的方法,而且使逻辑可重用和一致. (2认同)

Thi*_*ies 5

我的建议是"不要陈述明显的".

读取if(!$ request)说 - 如果没有请求.我不需要对此发表评论.

如果你有多个检查(这个||(那个&& this-too))我会去创建一个返回带有结果的布尔值的方法.然后您的方法名称是您的评论,通常比实际评论更好.