Black Puppy's Blog

Saturday, May 28, 2005

优化!局部还是全局?

关于《源代码就是设计》网友评论中,leadzen写了这么下面一个故事(李战.深圳 2003-10-23)。

从前,有一个A型血的人和一个B型血的人去登山。显然A和B有着不同的登山方法。

A 到了山脚下,总是先停下来,仔细打量山势。接着,围着山脚转转,看看哪些是小山包,哪个是主峰。然后,设计几条不同的登山线路,并选择出最好的登山线路作 为首选计划。同时,他还考虑到如果首选计划出现问题,则可以启用第二计划或第三计划...而此时的B几经爬上了第一个小山包。B登上小山包的时候,发现这 个小山包不是去主峰的路。B并没有气馁,稍微打量一下环境,立即从小山包上下来,往更高的一个山峰进发...就这样,B无时无刻不在后退中前进,在下坡中 上山,已经将A远远的甩在后面。最后,B成功地登上梧桐山(深圳)主峰,而A还在半山腰艰难地攀登。当A终于登上主峰之后,B说了一句很有很有意思的话: 你现在知道极限编程的威力了吧!A默然不语...

一位想学登山的新手来向A和B请教登山的方法。A把他的线路图和计划全部给了新手,没有 说一句话。新手看都没看,就跑去问B。B意味深长地说:努力,努力,再努力,当你到达山顶的时候,就知道了登山的方法!新手由衷敬佩。多年以后,A成功地 登上了珠穆朗玛峰。据说B倒下的地方离一号营地只有一百米远...当那位新手终于找到A求教的时候,A还是将所有的登山线路和计划交给了他,依然没有说一 句话。

但新手明白:这就是设计!

很佩服这位网友,能用故事说明不同软件开发方法之间的区别。我只是觉得其中的道理同样适用于其他的博弈,比如打牌,下棋等等,甚至为人处事。一种说法是,不 能只注重蝇头小利,而要注重长远利益。另一种说法是,十鸟在林,不如一鸟在手。恐怕也是众说纷纭,没有单一的必胜策略吧。

0 Comments:

Post a Comment

<< Home