重构业务规则、函数命名、宽度、高度、位置 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
会调用 ParseSize
或 ParsePosition
。
您也可以直接使用 ParsePair
,但我认为将其他两个函数放在中间会更简洁。
对象
请注意,通过使用对象而不是字符串(Size
和 Position
,也可能是 Pair
,您可能会获得更清晰的代码。
ParsePair
代码(适当改编)将包含在构造函数或工厂方法中,为您提供字符串中的 Pair。
---
当然你可以给各种函数、对象和参数起其他名字,这里我用了我想到的第一个。
我正在重构一些业务规则函数以提供更通用的函数版本。
我正在重构的功能是:
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
会调用 ParseSize
或 ParsePosition
。
您也可以直接使用 ParsePair
,但我认为将其他两个函数放在中间会更简洁。
对象
请注意,通过使用对象而不是字符串(Size
和 Position
,也可能是 Pair
,您可能会获得更清晰的代码。
ParsePair
代码(适当改编)将包含在构造函数或工厂方法中,为您提供字符串中的 Pair。
---
当然你可以给各种函数、对象和参数起其他名字,这里我用了我想到的第一个。