论坛首页 Java企业应用论坛

在什么时候对参数进行验证

浏览 14130 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-05-23  
wolf_awp 写道
skzr.org 写道

楼主这个帖子非常有意识,如今竟然没有一个“隐藏”或者“新手”贴,我投个良好

 

谢谢了哈,在javaeye发贴,是要做好被投“隐藏”和“新手”的准备。

这年头好帖子容易被埋没,罪过罪过。

 

其实这个帖子本来就是争议大,一个是理论派,一个是实践派。他们的分歧在计算资源的利用考虑上,是不是要去掉冗余的检验。

 

没有是非对错,只有架构规定好了,找到他们的平衡点就可以了,只有适合项目的特定实践,而没有绝对的正确

0 请登录后投票
   发表时间:2011-05-24  
f ucktianya 写道
调用的都不知道,那还调用个啥啊。

如果是买东西。你都不知道自己买啥。那你还去干嘛啊。。。



不是不知道,是知道的不详细。写方法的人更了解自己的方法参数要求。
0 请登录后投票
   发表时间:2011-05-27  
main方法也得验证
0 请登录后投票
   发表时间:2011-05-29  
同意楼主的理解,action负责验证
0 请登录后投票
   发表时间:2011-05-29  
skzr.org 写道

楼主这个困惑不是你一个人困惑阿,呵呵
估计每个开发的都困惑过:严格的规范说每一个地方都要验证,但是实际上很多地方的验证都是重复的“冗余”。

每个代码的上下文都是不一样的,所以没有最好的,只有适合自己的实践。

在我的系统中,最佳实践:

  • 每一需要验证的方法,都把前置条件写入到方法注释中——必须的
  • dao不做任何验证,认为输入的参数都是验证过了的
  • service层如果是外部接口,那么做验证,反之认为都是合法的(一般调用者就是Action,或者其他service)
  • action必须做验证,并提供友好的反馈给调用界面

现在在构建一个平台,感觉和做小项目不一样:service层如果是外部接口,那么做验证,反之认为都是合法的(一般调用者就是Action,或者其他service)

这里service基本都是需要对外的,也就是这一条变成了所有的service都要做验证。

最终:除开dao不做验证外其他的都要做验证,因为dao是系统内部使用,外部系统无法访问。

 

can't agree with you more

1 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics