重构业务规则、函数命名、宽度、高度、位置 X 和 Y

Refactoring Business Rule, Function Naming, Width, Height, Position X & Y

我正在重构一些业务规则函数以提供更通用的函数版本。

我正在重构的功能是:

DetermineWindowWidth
DetermineWindowHeight
DetermineWindowPositionX
DetermineWindowPositionY

都是做字符串解析的,因为是字符串解析业务规则引擎。

我的问题是,新重构的函数应该取什么名字好? 显然我想回避像这样的函数名称:

DetermineWindowWidthHeightPositionXPositionY

我的意思是那会起作用,但是当它可能是这样的时候,它似乎不必要地长: DetermineWindowMoniker 或类似的东西。

函数 objective: 解析输入字符串,如 1280x1024 或 200,100 和 return 第一个或第二个数字。用例用于网络浏览器的数据驱动测试自动化window,但这应该与答案无关。

问题objective:我有代码可以做到这一点,所以我的问题不是代码,而是函数名。有什么想法吗?

这个问答似乎为回答这个问题提供了一个很好的起点:

www.thesaurus.com 上搜索 "Property" 给出了一些有趣的可能答案,为用法提供了足够有意义的上下文:

Aspect
Character
Characteristic
Trait
Virtue
Property
Quality
Attribute
Differentia
Frame
Constituent

我认为ConstituentProperty可能是最合适的。

细节太少,你至少应该详细说明函数的参数和returns。

  • 我是否理解正确,您使用 NxN 格式的字符串表示大小,N,N 的位置?
  • 而且这个通用函数必须解析两者(而不是其他任何东西),并且 return 会根据函数的参数来解析第一部分还是第二部分?
  • 然后您将保留各种 DetermineWindow* 函数,但让它们都调用这个通用函数?

如果是:

如果不知道泛型函数有哪些参数,就更难提供帮助,但很可能无法给它起一个简单的名称。
并不是所有的批次代码都可以用一个简单的名字来描述。

如果您想要清晰的名称,您很可能需要使用不同的结构。这是一个伪代码的想法:

ParseSize(string, outWidth, outHeight) {
    ParsePair(string, "x", outWidht, outHeight)
}

ParsePosition(string, outX, outY) {
    ParsePair(string, ",", outX, outY)
}

ParsePair(string, separator, outFirstItem, outSecondItem) {
    ...
}

而各种 DetermineWindow 会调用 ParseSizeParsePosition
您也可以直接使用 ParsePair,但我认为将其他两个函数放在中间会更简洁。


对象

请注意,通过使用对象而不是字符串(SizePosition,也可能是 Pair,您可能会获得更清晰的代码。
ParsePair 代码(适当改编)将包含在构造函数或工厂方法中,为您提供字符串中的 Pair。

---

当然你可以给各种函数、对象和参数起其他名字,这里我用了我想到的第一个。