【发布时间】:2013-08-01 20:41:17
【问题描述】:
这可能不是问这个问题的理想场所,但我真的走入了死胡同,不知道在哪里可以问(建议将不胜感激)。
我正在尝试为我公司的 C 库的 4 个新 API 命名。
这些 API 被添加到现有的集合中,因此它们必须匹配已经制作的模式,这限制了我的选择。
所有 API(现有的和新的)所做的是允许用户获取/设置程序中使用的值字符串或非字符串变量。
我的不同之处在于,它们允许您使用变量名称获取值,与现有方法相反。
这是我目前拥有的:
VariableGetValueString
VariableSetValueString
VariableGetValue
VariableSetValue
唯一的问题是它没有明确说明它使用变量的名称。我想不出一个简洁的名称可以让客户清楚地知道这一点。
最好不要从名称中删除任何内容,因为它与其他 API 的模式相匹配(这些 API 没有在其名称中明确说明它们的检索方法,尽管出于无关的原因应该这样做)。
感谢任何帮助,虽然我知道没有明确的答案,但我显然会接受最适合的答案。
再次抱歉,如果这是一个糟糕的地方问这个问题,我希望有一个更合适的地方的建议。
编辑:
一些现有的 API 名称是:
VariableGetTaskString
VariableGetTask
VariableGetGlobalString
VariableGetGlobal
沿着这些思路。 Task 和 Global 指的是变量的范围。一开始它们的名字不是很好,这让我的工作变得更加困难,但是它们不能被改变,因为客户已经习惯了它们,而且这些改变会破坏旧的程序。我最初没有包括这些,因为它们提供的帮助很少(在我看来)。
每个 API 的参数都会让客户清楚地知道每个 API 的作用,但最好让名称也能做到这一点。感谢您的反馈。
编辑2:
以下是调用 API 的示例:
if(!VariableGetValueString(Handle handle, LPCSTR variableName, TaskID taskID, LPSRT value, DWORD bufferSizeinBytes)
{
//retrieve failed.
}
if(!VariableGetValue(Handle handle, LPCSTR variableName, TaskID taskID, PDWORD value)
{
//retrieve failed.
}
希望这足够清楚。随时要求更多,我会整天编辑这个。感谢您一直以来的支持。
【问题讨论】:
-
使用或大量使用这个词
-
@Quonux 哈哈,这正是我想要避免的......
-
典型的函数签名是什么样的?你能提供例子吗?您的新函数的签名是否有足够的差异,以便提示来自该差异?你能命名参数来提供提示吗?
-
@JamesMorris 参数的名称肯定会给出很大的提示,值是一个字符串。所以我可以依靠这个,但更多会更好。现在编辑帖子以反映这些请求
-
这是一个基于意见的问题,因此我将提供一个意见作为答案:可以创建新的命名约定,同时将旧名称标记为受支持但已弃用。话虽如此,您的名字已经足够简单了;您能否举例说明用户如何使用
VariableGetValue?提出一些合理的建议会有所帮助。