免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: converse
打印 上一主题 下一主题

[函数] [讨论]判断参数正确性是调用函数的责任还是被调用函数的责任? [复制链接]

论坛徽章:
0
41 [报告]
发表于 2007-01-07 11:44 |只看该作者
原帖由 njmpop 于 2007-1-7 11:19 发表


其实生产中是b的开发人员辞职走了。


那么编写 B 的人应该更加仔细地阅读 A。如果不能阅读,就有必要自己重写。黑箱操作是最危险的。

如果封闭了源代码,就该详细地撰写文档,表明该如何使用参数等。

另外,开发人员之间的交流、协作非常重要。比如在提交 CVS 的时候,应该首先 checkout/update 一下,看看别人是否已经改动过文件;改动了,那么就在改动的基础上做;然后确认没有改动,再在邮件列表或其替代品上通知一下,把自己的动作预先告知其他开发人员,再进行提交,这样就把可能发生的争端基本消除了。

论坛徽章:
0
42 [报告]
发表于 2007-01-07 11:44 |只看该作者
原帖由 njmpop 于 2007-1-7 11:24 发表


关键问题是a可能根本就不知道b需要什么判断。


说明设计文档不规范... 软件工程啊...就好像你要是不知道随身听的电压, 也不能随便乱插...万一电压不合适, 商家才不管呢...无数美版PS2就这样升天了...

论坛徽章:
0
43 [报告]
发表于 2007-01-07 12:02 |只看该作者
我觉得大家可以这样考虑
你妈妈你爸爸你哥哥都可以给你苹果,拿到苹果后你可以吃它,分两种情况
1)你信任你妈妈你爸爸你哥哥会给你好苹果,拿到苹果后不管三七二十一你就吃了,你在信任你爸妈哥的同时,你把检查苹果好坏的责任推给了他们,而他们在给你苹果前都要检查苹果的好坏,突然有一天你觉得不红的苹果不好吃因而不吃,你是不是他们三个都挨个通知一遍不红的苹果别给你?
2)你妈你爸你哥你都不信任,索性自己检查苹果的好坏.
我想第二种情况是最自然最符合情理的,试想你买一款1万左右的数码象机,象机各种认证什么标准的都通过了,你是不是还要自己检查一下呀,虽然一万个产品中也许就一个次品,可你相信别人传给你的就是你想要的么?

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:192015亚冠之广州恒大
日期:2015-07-22 17:20:15
44 [报告]
发表于 2007-01-07 12:07 |只看该作者
这个形象 哈哈

论坛徽章:
0
45 [报告]
发表于 2007-01-07 15:36 |只看该作者
原帖由 Edengundam 于 2007-1-7 11:44 发表


说明设计文档不规范... 软件工程啊...就好像你要是不知道随身听的电压, 也不能随便乱插...万一电压不合适, 商家才不管呢...无数美版PS2就这样升天了...


其实这个和设计文档规不规范没有关系。

比方说,
我设计了一个内存数据库,
这个数据库只能保存100万条数据,
如果插入超过100万条的话,
这个数据就无法插入了,会报错,
如果a检查的话,那么他怎么知道他在select完后没有其他进程插入一条数据?加锁?
如果类似的限制还有100个,都会导致插入不成功,怎么处理?
都在a里面处理,b不管?

我考虑此问题和文档规范没有关系,而是一个逻辑问题。
其实苹果的例子很明显了。难道大家买东西自己都不检查下?

论坛徽章:
0
46 [报告]
发表于 2007-01-07 15:38 |只看该作者
比方说大家到银行存钱,存100张假币,对营业员说这都是真币,营业员会相信?

程序员也一样,同样是不可信的,毕竟有高手有低手,高手也有犯错误的时候。

论坛徽章:
0
47 [报告]
发表于 2007-01-07 15:44 |只看该作者
原帖由 langue 于 2007-1-7 11:44 发表


那么编写 B 的人应该更加仔细地阅读 A。如果不能阅读,就有必要自己重写。黑箱操作是最危险的。

如果封闭了源代码,就该详细地撰写文档,表明该如何使用参数等。

另外,开发人员之间的交流、协作非常重 ...



我觉得责任划分的问题,应该是这样划分的,a确信传给b的参数,不符合b要求的话,b会告诉a,并且不处理。对于b来说,如果你给我的参数不符合要求,就告诉a,而不是管它呢,错了算a倒霉。

要不调用者的压力太大了吧?

如果b是1万行的代码,你让a怎么做?程序的鲁棒性如何体现?

论坛徽章:
0
48 [报告]
发表于 2007-01-07 15:46 |只看该作者
原帖由 Edengundam 于 2007-1-7 11:44 发表


说明设计文档不规范... 软件工程啊...就好像你要是不知道随身听的电压, 也不能随便乱插...万一电压不合适, 商家才不管呢...无数美版PS2就这样升天了...


所以好的ps2应该加个判断功能,是不是ps2就不会升天了?

论坛徽章:
0
49 [报告]
发表于 2007-01-07 15:46 |只看该作者
原帖由 njmpop 于 2007-1-7 15:36 发表


其实这个和设计文档规不规范没有关系。

比方说,
我设计了一个内存数据库,
这个数据库只能保存100万条数据,
如果插入超过100万条的话,
这个数据就无法插入了,会报错,
如果a检查的话,那么 ...



所以数据库需要并发访问控制, 事务和隔离级别. 如果非要很严格, 那么就用串行嘛. 你应用程序要做的就是检查这个返回情况了...

另外很多电器都有保险, 为了防治损失. 苹果, 如果bill gates 那么他买到坏的也无所谓, 他用来检查苹果是不是好的时间, 已经创造了几车苹果的财富.

假币不合理, 计算机中, 理想状况是正确调用函数, 没有伪造信息, 如果每个人都诚信, 那么银行人员就不需要数了(所有人都诚信)...

这种问题, 每个人看法不同


[ 本帖最后由 Edengundam 于 2007-1-7 15:48 编辑 ]

论坛徽章:
0
50 [报告]
发表于 2007-01-07 15:48 |只看该作者
原帖由 langue 于 2007-1-7 11:44 发表


那么编写 B 的人应该更加仔细地阅读 A。如果不能阅读,就有必要自己重写。黑箱操作是最危险的。

如果封闭了源代码,就该详细地撰写文档,表明该如何使用参数等。

另外,开发人员之间的交流、协作非常重 ...


感觉langue比较理想话,或者在大公司工作,对于编写基础函数包的人可能会比较累。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP