Yon*_*oni 39 language-agnostic ide parameters
今天调试一些Web服务客户端代码时(在Java中,使用jax-ws),我遇到了令人兴奋的97个参数的Web服务方法!
我必须创建一个调用此方法的测试用例,我注意到了几件事:
所以这让我思考,您认为方法的最大参数数量是多少?如果您可以更改此Web服务签名,您认为如何改进它?
Pét*_*rök 64
没有明确的限制,但我对超过3-4个参数感到不舒服.清洁代码中的 AFAIR叔叔Bob Martin 建议最多3.
有几种重构可以减少方法参数的数量(有关详细信息,请参阅Michael Feathers的有效使用遗留代码).我想到了这些:
String surName, String firstName, String streetAddress, String phoneNumber将Person包含这些参数的对象作为字段传递)小智 34
当你不得不问,它可能太多了.
Ond*_*ták 12
正如Steve McConnell在Code Complete中提到的那样,黄金法则是4 +/- 3个参数.对于普通人来说,很难记住超过4个参数,5-7应该只在特殊情况下使用,你永远不应该使用8个或更多.
大佛!! 九十七????
良好的做法通常建议最大.六到八个.当然,ymmv,可能有一个有效的理由,不时,为第九.但97 ?? !!
一些想法......这些只是数据,还是基于价值观做出的决定?
如果许多/大多数影响流量控制,则您具有几乎不可维护(甚至可理解或可测试)的"设计"(对于"设计"的小值).
如果它们只是数据,它们是否可以分组为结构和指针,通过这些结构?
你有设计文件吗?可能会解释发生了什么.
哦,而且,"危险,威尔罗宾逊" - 任何公开传递97个参数的人也可以传递任何数字 - 不是那么明显 - 作为全局变量.
Ps不知道Eclipse如何在Java上工作,但是使用C/C++,如果你将paramaeters放在不同的行上
char DoEverything(
int meaninglessParameterName1,
char *meaninglessParameterName2,
....
long double *meaninglessParameterName97)
{ return !NULL;}
Run Code Online (Sandbox Code Playgroud)
Eclipse实际上会识别带有错误参数的行
| 归档时间: |
|
| 查看次数: |
27113 次 |
| 最近记录: |