如何选择函数名?
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
因为这可能会使您的同事感到困惑。
另外请记住,不同的语言确实有不同的命名约定,因此您应该始终检查以您使用的语言命名 functions
和 variables
的最佳方式是什么。
我们正在工作中进行讨论,因为我倾向于根据函数的作用来命名函数。
例如:
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
因为这可能会使您的同事感到困惑。
另外请记住,不同的语言确实有不同的命名约定,因此您应该始终检查以您使用的语言命名 functions
和 variables
的最佳方式是什么。