按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
知律而变,智者之道也。
…107
…………………………………………………………Page 112……………………………………………………………
第 8 章 是思考还是思想
“知律而变”中的“律”字,若解释作“规律”,那
么便是可以用于软件工程中的了。“道”是规律,如果明
“道”,而可以变化无穷,这样做软件工程才是活的。就
如同今人难于填词一样,不明道,则不明智,不明智则无
所以为,因而在软件工程实施中不可避免的盲目与停滞。
“知律”的另一层意思,是在于“知道原理”。明白
“为什么要这样”或者“为什么不是那样”。这在软件开
发中是常见的问题,大多数人不知究竟地使用着技巧和方
法,而一旦出了问题,则归究于这些技巧和方法的不好。
而真正的问题在于,这些人(我们通常叫做 Copy&Paster)
并不知道这些技巧、技术和方法的原理,因而不知道变通,
也不知道回避错误。
所以死读一本《软件工程》的人不会做真正的软件工
程。
所以我写《大道至简——软件工程实践者的思想》。
…108
…………………………………………………………Page 113……………………………………………………………
附 录
一、Jiangtao; Aimingoo关于序言的对谈(2005。11。06)
Jiangtao说:
大部分的人都希望看到招术,而不是学习其中之道。
但每个人碰到的情况是不同的,不通“道”,招数就不灵了。
Aimingoo 说:
是啊。明白道理,明白原理,即知变化之道,知变通之道。
亦步亦趋学不好编程,同理,也学不好工程啊。
Aimingoo 说:
正如你说所〃道理归到底是相通的〃,不同的人只是在换着不同的
方式在说而已。
Aimingoo 说:
像GoF这样深彻的理解,并不多。而我们看到GoF对他们的理解的
解释,文字量并不大。而更多的是别的人的、种种不同的说法。——
其实,根源在哪里呢?在GoF的思考,以及他们对既有事物的观察方法。
Jiang Tao 说:
易经,论语也很短,却可以解释世界万物之理,当然其中任何一
个话题展开也可以写成长篇大论。
Aimingoo 说:
从写作手法上,看作散文集亦无妨。但我是有大纲然后逐一先成
的,也就是说,在思想上是有中心并渐次展开的。
…109
…………………………………………………………Page 114……………………………………………………………
后语
Aimingoo 说:
《程序员》选了6;7;8三章发表,其实很正确。因为6;7两章的确
讲述了中心思想。但如果没有前面的,就有骨无肉,不丰满了。
Jiang Tao 说:
我知道,你有一个逻辑关系组织,不过每一篇其实是散着谈的。
Jiang Tao 说:
你是从根上谈起,一篇篇往后。
Aimingoo 说:
对对,每一篇与其它的段落,并没有直接关系。
Jiang Tao 说:
前面的道理大家觉得自己都明白,其实只是知道道理,却没有体
会上身。
所以会不断地犯错误,而不知道错误的根源。
Aimingoo 说:
是的。“知道”和“理解”,以及“理解”和“领悟”,都是不
同的境界。
Jiang Tao 说:
我们和这些专家正相反,专家是从根上来的,我们是从道理往后
寻找根源。
大部分人还根本不找。只是用这个结果,却不知道根在哪里。
Aimingoo 说:
对。我们做事,总是做到后来才发现道理与专家们说的是一样的。
我读书的时候,以及在Coder的一个很长的阶段,也是很排斥“专家”
和“理论”的。但现在我却在思考理论的东西。
Aimingoo 说:
因为我发现,这些理论,以及其背后的思想,是一切演化的根源。
…110
…………………………………………………………Page 115……………………………………………………………
『大道至简』
如果不想沦为代码工人,甚或代码机器,那么就需要思考并领会
这些背后的道理。
Aimingoo 说:
我在脚注里面,有一些文字是很值得关注的,例如:“其实所谓
‘经典’也是对既有知识的总结。大师们所知的,与你所思考的未必
就有天壤之别。”
再如“《三十六计》更多的时候是被当成方法论来读的。其根源
在于‘计谋’本身只是方法,而不是战略。”
Jiang Tao 说:
就是这个理,不过这一关不好过。
围棋的学习有四个阶段:记住定式 应用定式 忘掉定式 创造定
式。
Aimingoo 说:
大多数时候,“文字”只是思想的结果的描述。我希望更多的人
看到思考的过程,并知道其价值。如你所说,我也希望人们忘掉我所
说的,并创造自己的“定式”,乃至达到“法无定法”的境界。
Aimingoo 说:
所以我在甚至希望大家最终将这本书束之高阁,“思想已经领悟,
文字的、纸质的东西还有什么价值吗?”
Jiang Tao 说:
等电子版发表后,我们可以组织感兴趣的人延伸讨论讨论;很多主
题是可以展开讨论的。
对照自己的问题,再看这些思考,就会有感觉了;这样就有案例出
来了。
Aimingoo 说:
好啊。非常不错的主意。
…111
…………………………………………………………Page 116……………………………………………………………
后语
后 语
前言后语
你现在读到的文字,原本应该是这本书的前言的。然
而如今,它变成了后语。
如果读者是客户,那么我就应该是这本书的工程管理
人员了。与第一次著书不同,这一次我已经尝试参与整个
“做书”的过程。我必须要考虑客户问题,必须要知道作
为客户或者读者这个角色的你,在想些什么,或关注些什
么。
在这本书的最最最初的时间里,我把书稿给了我的老
朋友王寒松。然而我很失望地听到他的意见:这个前言没
法读。——我想了又想,是的,因为有了玄而又玄的观点
以及曲折旁引的论述,所以的确不是太容易读。
从我的角度上讲:
) 这个前言总括地讲述了我的观点
从读者的角度上讲:
) 读者关注的是细节的文字
) 读者享受的是阅读的快乐
发现我在“做书”的这件事中扮演的是工程管理人员
的角色的同时,我就决定了这篇前言应该改成后语。原因
很简单,客户并不关注我对观点的总括,至少一开始他们
不会关注。如果要客户做结论,或者要他们与技术人员讨
论结论,那就让他们在看完演示之后,在最最后的阶段去
…112
…………………………………………………………Page 117……………………………………………………………
『大道至简』
做。
读者的阅读行为决定了我将这篇文字放在这个位置:
这篇前言既不是细节的文字,又不能给读者以阅读的快
乐,因此它就应该放在后面。至于它是叫前言,还是改名
叫后语,那只是形式的问题。
如果你觉得你的项目中还有一个模块不是用户所关
注的,那么,En ,建议调整一下明天的客户演示,把这一
部分放到幻灯的最后一页的后面,只有客户提及时,才拿
出来跟他们解说。
否则,如果他们不感兴趣,那么他们将永远看不到这
张幻灯。一如这一篇前言。
软件工程
如果做一份软件工程中的经典书目,决不会有人漏掉
Roger S。Pressman 著的《软件工程》。这本书有第四、五版
梅宏教授译著的中译本。然而相信读这本书的人不会太多
的注意到它的副标题是“实践者的研究方法”。——从根
源上说,它是讲述软件工程方法的书,而不是软件工程思
想。
这有什么区别呢?拿这本书来作为软件工程活动的
参考时,绝大多数的人不能明白类似如下的问题:
) 为什么要这样做呢?
) 我们这里应该这样做,但是接下去呢?
) 这个环节很重要,但是如果不做会有怎样的风
险?
…113
…………………………………………………………Page 118……………………………………………………………
后语
) 我们在做这件事的时候,其它的人在做什么?
) 为什么失败了?
相关的问题很多,但总而言之,这本经典教材更多的
是在描述“怎样实做”,而绝少讲述“为什么这样做”。以
致于行为失去了思想的引领,能“完成”工程,而不能“做
成”工程便是可以想见的事了。
任何人在实施软件工程的过程中,或者处于工程过程
的某一个阶段的时候,都会有自己的思想或思考( 哪怕是
劳骚) ,那么为什么没有人写“软件工程思想”这样的书
呢?
我与软件工程
我始终认为无论是哪家公司实施软件工程,都将是一
部成功者的血泪史。然而不实施软件工程,则将是一部失
败者的血泪史。换而言之,做软件工程可能流血流泪,但
终究可能成功;而不实施软件工程,那就是抛头颅洒热血
的失败了。
我所遇见的却是不打算实施软件工程的公司。在“誓
死不做软件工程”的思想的引领下,一家堪称河南省最具
资本实力的软件公司于 2003…2004 年间倒掉了。我在这家