清洁代码最佳实践,我应该在函数内部还是在调用方中验证数据?

问题描述 投票:0回答:2

检查此功能:

private string function(string currentRegion)
{
    if (string.isNullOrEmpty(currentRegion)) return;// Is it the best practice to validate it inside the function?

    return doSomething();
}

if (string.isNullOrEmpty(region)) result = function(region); // Or here?

或者也许是both?

因为是否在函数内部验证,如果无效则返回哪个字符串?

因为如果调用者验证=>“我是函数”,我必须对其进行验证!

因为如果同时使用,可能是多余的代码?

c# code-cleanup
2个回答
0
投票

我认为第一种方法是最好的方法,因为该代码易于调试


0
投票

取决于。

如果是私有函数/方法,并且可以在调用方检查参数,则由调用方进行检查就足够了。当然,您也可以检查此类功能/方法的内部,例如,防止自己犯错。

而且,如果它是任何公共方法/函数,强烈建议您检查此函数/方法中的参数,因为您不能假定将正​​确地调用它。

[不要相信外来词,不要相信未知的代码,不要相信任何其他正在调用您的函数/方法的程序员;)可以通过几行代码来实现针对错误参数的保护,而这种保护的代价始终是少于调试代码和调查所花费的时间,这是什么问题。

© www.soinside.com 2019 - 2024. All rights reserved.