我是否应该将验证函数命名为 throwExceptionIf...?
Should I named validate function throwExceptionIf...?
我在代码中有许多使用相同命名约定 validateSomething() 的私有验证函数。如果验证失败,其中一些会抛出异常。我打算将其重新命名为 throwExceptionIfSomethingInvalid() 以使代码更具可读性。但有人认为新名称太奇怪了,使他们感到困惑。你能帮忙给我一些建议吗?
But someone argue that the new name is too strange
同意。指定您的方法可以抛出已检查异常的正确方法是将其声明为方法签名的一部分。示例:
validateName()throws InvalidInputException
validateAge()throws InvalidInputException
执行此操作时,调用者将始终被迫处理异常或将其传播到更高的模块。
另一种看待这个问题的方法是问问自己:你会命名一个没有 return 任何值 void doSomethingWithoutReturn
的方法吗?不,因为当您看到它的签名中有 void
时,您可以知道该方法没有 return 任何东西。
这里没有"exact"个答案;只有约定。你选择哪一个并不重要。更重要的一点是:无论您选择什么命名策略:
- 你必须"stick"。不要在这里使用一种 "naming scheme",在那里使用另一种。
- 如果您与其他人在一个团队中工作:确保团队中的每个人对这些有相同的理解政策。
换句话说:您想遵循POLA(最小惊讶原则)。您的代码的读者应该总能发现方法的名称(在您的上下文中)确实说明了该方法将做什么。
此外,"my policy" 通常是 void 方法以 checkSomething
或 validateSomethingElse
开头,如果检查失败(以及:除了抛出异常之外,void 方法还能做什么)。
与返回 isSomethingValid()
左右的 布尔值 相比。
我在代码中有许多使用相同命名约定 validateSomething() 的私有验证函数。如果验证失败,其中一些会抛出异常。我打算将其重新命名为 throwExceptionIfSomethingInvalid() 以使代码更具可读性。但有人认为新名称太奇怪了,使他们感到困惑。你能帮忙给我一些建议吗?
But someone argue that the new name is too strange
同意。指定您的方法可以抛出已检查异常的正确方法是将其声明为方法签名的一部分。示例:
validateName()throws InvalidInputException
validateAge()throws InvalidInputException
执行此操作时,调用者将始终被迫处理异常或将其传播到更高的模块。
另一种看待这个问题的方法是问问自己:你会命名一个没有 return 任何值 void doSomethingWithoutReturn
的方法吗?不,因为当您看到它的签名中有 void
时,您可以知道该方法没有 return 任何东西。
这里没有"exact"个答案;只有约定。你选择哪一个并不重要。更重要的一点是:无论您选择什么命名策略:
- 你必须"stick"。不要在这里使用一种 "naming scheme",在那里使用另一种。
- 如果您与其他人在一个团队中工作:确保团队中的每个人对这些有相同的理解政策。
换句话说:您想遵循POLA(最小惊讶原则)。您的代码的读者应该总能发现方法的名称(在您的上下文中)确实说明了该方法将做什么。
此外,"my policy" 通常是 void 方法以 checkSomething
或 validateSomethingElse
开头,如果检查失败(以及:除了抛出异常之外,void 方法还能做什么)。
与返回 isSomethingValid()
左右的 布尔值 相比。