如何选择函数名?

How to choose function names?

我们正在工作中进行讨论,因为我倾向于根据函数的作用来命名函数。

例如:

function notifyUserOfSomeThingThatHappened(){
    // notification code
}

我的同事认为(我有点同意)这个函数应该根据它被调用的原因来命名,而不是根据它的作用来命名,因为它的作用可能会改变。

像这样:

function someThingHappened(){
    // notification code
    // possible new code in the future
}

我同意这一点,但有一个问题:我认为我们应该根据实际内容命名只会做一件事的函数,而根据调用原因命名其他函数,如下所示:

function someThingHappened(){
    notifyUserThatSomeThingHappened();
    // possible new code in the future
}

function notifyUserThatSomeThingHappened(){
    // original code
}

命名函数的最佳做法是什么?为什么要使用这些做法?两者相比有什么优势?

一个简单的规则是:
如果函数 改变 程序的状态,则函数名称应该是动词,如果它们用于 return 某个特定的,则函数名称应该是名词值。

要记住的另一件事是一致性

如果您使用的名称 getName 保持一致并且不要写在其他地方 retrieveName 因为这可能会使您的同事感到困惑。

另外请记住,不同的语言确实有不同的命名约定,因此您应该始终检查以您使用的语言命名 functionsvariables 的最佳方式是什么。