过滤器命名约定

Filter naming convention

我有一个 mysql 函数,它接受一个字符串作为输入,returns 只有字母数字字符。

例如,

101-FFKS 99S-5 会输出 101FFKS99S5

它被称为 alphanum,描述性不强。

我正在考虑 alphanum_filterpunctuation_filter 的思路。

约定的约定是什么?您要过滤掉的东西,还是剩下的东西?

几次 google 搜索没有找到任何有用的信息。

我认为编程中没有任何约定俗成的约定。

请注意,关于要放在 "filter" 附近的东西,有三个选项,而不是两个选项:

  • 您要过滤掉的内容,
  • 你还剩下什么
  • 以及两者的组合,即进入过滤器的物质。

事实上,我认为一般来说,当您在英语中看到 "filter" 附近的单词时,您会认为该单词是 将被放入 过滤器中的内容。
请注意,虽然 "air filter"、"water filter"、"oil filter" 和 "fuel filter" 似乎指的是过滤后剩下的内容,但我坚信存在隐含的 "unfiltered"在他们所有人之前。

不过也有真正包含"what you're left with"的名词,例如“高通滤波器”或"red filter",以及包含[=66]的名词=],例如"spam filter"。

所以在任何情况下都可能是模棱两可的。
乍一看,我认为这个词会被过滤掉,所以我更愿意使用 punctuation_filter,但这可能是主观的。
所以最好找一个不那么歧义的名字(虽然在某些情况下使用模棱两可的东西是可以的,让每个程序员通过查看它的源代码来理解它的作用;更重要的是要保持一致,你肯定不想要一个过滤掉标点符号的 punctuation_filter 和一个只允许数字通过相同代码的 num_filter

一个更清晰的名称可能是 LeaveOnlyAlphanums
是的,它是一个断言而不是一个名词,但您唯一可以使用的明确名词短语可能是 FilterThatLeavesOnlyAlphanumsThingThatLeavesOnlyAlphanums.

另一个想法是使用 FilterOut 而不是简单的 Filter。这肯定是明确的,尽管它也是一个断言。


如果您正在寻找在编程领域具有某种权威的东西,我发现 filterThe Art of Readable Code 中有歧义。