nic*_*ckf 4 parameters constants
我已阅读(并且普遍同意)为了提高代码易读性,您应该使用常量而不是幻数作为方法参数.例如,使用PHP:
// no constants ////////////////////
function updateRecord($id) {
if ($id == -1) {
// update all records
} else {
// update record with "id = $id"
}
}
updateRecord(-1); // future maintainer says: "wtf does -1 do?"
// and then has to jump to the function definition
// with constants: /////////////////
define('UPDATE_ALL', -1);
function updateRecord($id) {
if ($id == UPDATE_ALL) {
// update all records
} else {
// update record with "id = $id"
}
}
updateRecord(UPDATE_ALL); // future maintainer says: "woot"
Run Code Online (Sandbox Code Playgroud)
是的,这不是一个很好的例子,我知道......
所以,我可以看到这是一个更好的事情,但它提出了你应该多久这样做的问题?如果它适用于每个功能,那么你最终会得到一系列不断定义的公制衬衫.
你会在哪里划线?坚持使用常数而不是魔术数字,或者根据相关功能的使用情况采取混合方式?
所以,我可以看到这是一个更好的事情,但它提出了你应该多久这样做的问题?如果它适用于每个功能,那么你最终会得到一系列不断定义的公制衬衫.
如果每个函数都采用"魔术参数",那么你已经做错了.
我会一直使用常量.如果您认为这意味着您有太多常量,那么这只是反映您设计中的其他缺陷.