小题大做的典范 — 戈德堡机械
在如何区别Nerd和Geek一文里,我提过戈德堡机械(Rube Goldberg Machine),特别注明了“这个极有趣”。可惜该链接点击率并不理想,于是决定专门写一篇文章说说它,抒发一下我对它的喜爱之情。
什么是戈德堡机械呢?
定义什么的我最不擅长了,所以我选中了Rube Goldberg Machin,右击复制,打开百度,搜索google,点击第三个链接进入Google English,在输入框中右击粘贴,回车,点击“Showing results for Rube Goldberg Machine”,进入第一条结果:Rube Goldberg Machine维基词条,复制第一句话,在地址栏输入“Google 翻译”,回车,点击第一个链接,粘贴。得到如下翻译:
阿鲁贝戈德堡机,设备或装置是故意过度设计的机器,执行一个非常复杂的方式在一个非常简单的任务,通常包括了连锁反应。
通过字词、顺序调整,最终的成品是这样的:
一个鲁贝戈德堡机械,设备或装置是一种故意过度设计的机器,以一个非常复杂的方式执行一个非常简单的任务,通常包括了连锁反应。
这、这下定义清楚了吧…
// 人生要是所有的任务都用戈德堡风格实现会被指控浪费生命的…
典型的戈德堡机械举例
1. 戈德堡Doodle
10年7月4日,Google推出了一款用戈德堡机械纪念独立日的Doodle(动态效果见此youtube视频)。描述一下大致过程:
碰一下左下角的橄榄球,会打开装着老鹰(?)的笼子,老鹰飞出来碰掉自由女神像模型,模型掉到旁边的装置上,导致黑球掉落到桶中,带动滑轮组,升起美国国旗,同时推动熨斗(?),熨斗点燃礼花捻,最终画面上处处散落着喜庆的星星雨…
2. 自杀的兔子之戈德堡机械版
小兔兔吃兔粮,转化为排泄物落到转盘上,转动鞋子踢球,球推动滑板,滑板载的蜡烛烧断棉线,重物带动铡刀落下。啊啊啊啊~~小兔子的心愿也就了却了。
3. OK Go的This too shall pass (MV)
关于这段视频的幕后可以看Wired的介绍。
// 只是貌似这个庞大的装置并没有完成什么实际的任务
4. 33分钟侦探
据说有一部叫《33分钟侦探》的片子,每一集的侦探出场都会用一种戈德堡机械倒咖啡。看了一下这部片的剧情设计,囧到极点呐,主角侦探抱着5分钟可以解决的案子也一定要拖33分钟填满电视剧的播出档期才可以的念头,充分的头脑风暴,把每个人都怀疑一遍之类的。特地看了8集才开始写这个例子(其实…有必要为了戈德堡机械完整看完8集嘛…总共才9集-_-)
果然每一集都会有一个戈德堡机械的设计,成功率比较低。有时候还会很囧的和倒咖啡无关,整治一下你的思维定势…能接受这种冷幽默的话可以去看一看这部片。
5. 进入维基哲学词条的方法
随机进入一个维基百科英文词条,点击词条里的第一个外部词条链接,进入另一个词条。这样不断重复下去,最终一定会进入Philosophy(哲学)词条。
// 开玩笑的啦…这才不是戈德堡机械呢 -_-
如何设计戈德堡机械
// 这回抛弃了wiki How,改参考eHow了
Step 1. 定义完成什么任务
开始设计前,记得做需求分析。
为了让戈德堡机械具有存在意义,我们要给它设定一个很简单很囧很无聊的任务,这是指引戈德堡机械前进的小红旗。比如磕鸡蛋、做汉堡(失败的片段实在是太让人没有食欲了,youtube视频)。之后的设计,都要时刻牢记不能一下子达到这个目标,这叫目标躲避的设计(相比之下目标驱动逻辑更简单一些吧)。
Step 2. 确定多少步完成任务
比如至少100步,至少1分钟,诸如此类的数据。2011年打破吉尼斯世界纪录的戈德堡机械,名叫“时光机(Time Machine)”,用戈德堡机械的形式讲述了自大爆炸以来的历史(视频又在youtube)。全程共244步,用时两分半,参考一下这个数据。
Step 3. 想一个主题
如果想让戈德堡机械再多一分意义及整体感,可以再为它想一个主题。比如玩具、汽车、食物、办公…这样,无论是从步骤的设定,还是用料的选取,都更有针对性。比如那个著名的本田广告,就是动用了汽车零件,充分发挥想象力完成的。
// 本田广告和多米诺其实是很不一样的…
Step 4. 头脑风暴
Brain storm,灵感爆发的时刻到啦,能想到的都写下来,无偏见、无保留、无批判,这个阶段就是要充分发散思维。设计戈德堡机械的过程也是个非常好的训练大脑的方法。
About face里说,如果你发现想到的东西越来越慢,重复得也越来越多,那就是停止头脑风暴的时机了,所以不要太勉强自己。
Step 5. 绘制思路
头脑风暴完毕,你就可以慢慢整理写出来的一大堆东西了。挑一些觉得不错的想法,把它们连贯起来,绘制一个草稿。记得要考虑你定下的步数、时间目标以及你的终极目标。
Step 6. 验证
在开始动手做之前,先验证一下你的设计。一些实现困难或者成功率低的步骤,可以尝试用其他方法代替。
注意事项
- 一切以安全第一
- 核心是无逻辑、多此一举,请抛开各种理性
延伸阅读
- 戈德堡机械官方网站
- eHow-How to design a Rube Goldberg Machine
- OMGWTF戈德堡编程大赛
看到这个笑了好久好久,OMGWTF的全称并不是Oh my god what the f**k,而是Olympiad of Misguided Geeks Worse Than Failure 的缩写。这个编程大赛要求参赛者用他们能想到的最疯狂的形式编程实现一个计算器,获胜者的奖品是一台崭新的Macbook Pro。比赛于07年进行,共收到参赛作品350件。这里是其中一个作品的展示。这种简单的功能用复杂的逻辑写成的程序,叫做戈德堡程序。
- 说到小题大作的程序,还有一个:fizzbuzz企业版。用企业级的架构来写一个简单的功能:输出1-100的数字,如果该数字能被3整除,则用fizz代替,如果能被5整出,用buzz代替,如果同时被3和5整除,用fizzbuzz代替。这个功能人家写了16个类和将近50个unit test哩…
写到这突然想起来酷壳上的“如何写出无法维护的代码”,估计这些戈德堡程序就属于他所说的创造力和抓狂于一身的吧。呃…然后我怎么就扯到编程上来了呢…很久不写博客跑题都变得这么严重了。
打住到这里吧。
扯回来,为什么在区别nerd和geek一文里,设计制作戈德堡机械是一种geek爱好呢?借用@multiple1902小朋友的一句话回答:“小题大做不是geek的基本特征之一么~”
各位geek,你们有过什么戈德堡风格的案例吗?