惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Help Net Security
MyScale Blog
MyScale Blog
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
Martin Fowler
Martin Fowler
Vercel News
Vercel News
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
Last Week in AI
Last Week in AI
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
云风的 BLOG
云风的 BLOG

博客园 - 李战

解剖JavaScript中的null和undefined 《悟透JavaScript》感谢语 JavaScript判断浏览器类型及版本 浏览器兼容笔记 阿里与Google间的PK 硬盘那点事儿 做快乐的程序员 - 在淘宝网的一次讲座 《悟透JavaScript》之 甘露模型(新) 主键的故事 《悟透JavaScript》小故事摘录之二 《悟透JavaScript》小故事摘录之一 MSDN网站正式从第一版切换到第二版 为JavaScript程序添加客户端不可见的注释 输出自己源代码的C#程序 RE: 悟透JavaScript 悟透JavaScript 对象生死劫 - 构造函数和析构函数的异常 软件思想回顾与展望 一个SELECT语句引发的迭代(SELECT @local_variable = expression 的妙用)
登山的程序员 - 反思极限编程之“原代码就是设计”
李战 · 2008-02-12 · via 博客园 - 李战

登山的程序员 - 反思极限编程之“原代码就是设计”

Posted on 2008-02-12 21:22  李战  阅读(2711)  评论()    收藏  举报

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

    A 到了山脚下,总是先停下来,仔细打量山势。接着,围着山脚转转,看看哪些是小山包,哪个是主峰。然后,设计几条不同的登山线路,并选择出最好的登山线路作为首选计划。同时,他还考虑到如果首选计划出现问题,则可以启用第二计划或第三计划... 

  而此时的B几经爬上了第一个小山包。B登上小山包的时候,发现这个小山包不是去主峰的路。B并没有气馁,稍微打量一下环境,立即从小山包上下来,往更高的一个山峰进发... 就这样,B无时无刻不在后退中前进,在下坡中上山,已经将A远远的甩在后面。 

  后来,当B成功地登上梧桐山(深圳)主峰的时候,而A还在半山腰艰难地攀登。 

  最后,当A也终于登上主峰之后,B说了一句很有很有意思的话:你现在知道极限编程和敏捷开发的威力了吧! 

  A默然不语...

    一位想学登山的新手来向A和B请教登山的方法。A把他的线路图和计划全部给了新手,没有说一句话。 

  新手看都没看,就跑去问B。B意味深长地说:努力,努力,再努力,当你到达山顶的时候,就知道了登山的方法!新手由衷敬佩。 

  ... 

  多年以后,A成功地登上了珠穆朗玛峰。 

  据说B倒下的地方离一号营地只有一百米远... 

  当那位新手千辛万苦再次找到A求教的时候,A还是将所有的登山线路和计划交给了他,依然没有说一句话。

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

李战(leadzen).深圳 2005-7-1