智游城

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 7740|回复: 16
打印 上一主题 下一主题

请问 有没有 看懂Howard 的 "一个程序员的笑话"

  [复制链接]
跳转到指定楼层
1#
mattsX 发表于 2010-12-5 07:05:17 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Howard 在 "一道纯概率题" 说的笑话:
回复 22# Howard

"老婆问为什么晚上睡觉前要放杯水在床头,程序员老公说我半夜醒来口渴了喝,老婆又问,那为什么还要再放一个空杯子呢?
老公答:万一醒来不渴呢?"

Some of my friends who are Ph D. and programmer can't get it.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏
17#
omylove 发表于 2010-12-8 13:07:14 | 只看该作者
回复 12# mattsX

更通常的应该是:
b  = 0;
if (x == a) b = 1/2;
16#
omylove 发表于 2010-12-8 13:02:11 | 只看该作者
应该是:半夜醒来,按预定程序拿杯。
口渴,拿有水的杯子。
不口渴,拿没有水的杯子。
完美的程序。。。 ...
RichZhu 发表于 2010-12-7 04:21


没错。。

喝水应该是一个行为(接口),至于实际执行什么看当时需要(分派),

i = 水杯 IF 口渴
i = 空杯 IF 不口渴
i.drink()

可扩展性太高了。以后还可以果汁,茶,咖啡等等。

还有我觉得放个空杯这个应该是结构设计而不是异常设计。

完美的程序。。。
15#
linjingping7122 发表于 2010-12-8 11:55:45 | 只看该作者
啊啊,有意思啊,一点都不懂计算机
14#
idle 发表于 2010-12-7 06:07:03 | 只看该作者
顶五楼的兄弟。
按五楼兄弟的思路,那这位程序员对异常情况处理的不完善呀。
半夜醒来,
口渴--》有水的杯子
不口渴--》没水的杯子
尿急??
13#
RichZhu 发表于 2010-12-7 04:21:19 | 只看该作者
回复  Howard
但是程序员 搬它到日常生活:

如果半夜醒来口渴
    杯 有水
不然
    空杯
mattsX 发表于 2010-12-7 04:00


应该是:半夜醒来,按预定程序拿杯。
口渴,拿有水的杯子。
不口渴,拿没有水的杯子。
完美的程序。。。
12#
 楼主| mattsX 发表于 2010-12-7 04:00:33 | 只看该作者
回复 10# Howard
Howard 说的是 C++ 虚拟函数

通常程序员 处理  以下问题:
if (x == a)
    b = 1/2;
else
    b  = 0;

如果 不做 "b = 0", 会导致大问题.

但是程序员 搬它到日常生活:

如果半夜醒来口渴
    杯 有水
不然
    空杯
11#
mc07361810 发表于 2010-12-6 16:44:24 | 只看该作者
哈哈,空杯大有用处,口不渴,尿急了
半路相遇 发表于 2010-12-5 10:06

我认为你的答案才是正解
10#
Howard 发表于 2010-12-6 14:40:04 | 只看该作者
程序员处理异常情况的办法跟普通人不太一样,放个空杯子而且拿起来做个喝的动作,虽然正常人觉得太傻了,但是对于计算机来说却最自然不过。比方C++有一个类,当初设计的时候就是半夜起床就直接拿杯子喝水,那你要从这个类继承一个子类,这个东东就不好改了,而且改了有违类设计者的初衷,但是放个空杯子就能完美解决。
9#
yluulv 发表于 2010-12-5 13:03:54 | 只看该作者
没见好笑。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|智游城论坛

GMT+8, 2024-10-20 11:14 , Processed in 0.060209 second(s), 9 queries , Redis On.

Powered by Discuz! X3.2

© 2001-2012 Comsenz Inc.

返回顶部