友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
软件工程实践者的思想(PDF格式)-第13部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
…104
…………………………………………………………Page 109……………………………………………………………
『大道至简』
问题是:又有谁愿意在最初签订协议的时候,就降低
或者放弃协议的标的呢?
6。 枝节与细节
刚才说到目标和质量的问题时,提及“平衡时间、资
源和功能三者的关系”。这其实是一个实施过程中的细节。
或者说,它是一个具体的方法,而不是目的。
所以我们通常所说的细节,其实是对实施方法的一些
有限量的描绘。比如“软件工艺”这个概念本身的提出,
就是考究“细节问题”的。从这个角度上来说,我并不反
对“细节决定成败”这样的观点。但请注意一个前提:这
是技术或方法的细部。
我其实在前面的行文中一再地混用了“细节”与“枝
节”这两个词。枝节是事实发展的次要的分枝,它不涉及
行为本身,也不是对行为本身的考量。因此我在前面的文
字中说到“跳出细节”,其实的本意是“跳出枝节”。——
细节只有做到何种程度的问题,而不并是关不关注(或做
不做) 的问题。
大多数情况下,管理人员有责任去审核、评估其它成
员的工作成果。这个时候可以讨论“细节决定成败”这样
的问题,因为这决定了产品的最终质量,而质量是工程的
目标之一。
而在另一些情况下,例如管理人员做事件的决策的时
…105
…………………………………………………………Page 110……………………………………………………………
第 8 章 是思考还是思想
候,就必须要学会忽略枝节问题。
混淆这两个名词的使用,其根本原因在于一大部分读
者并不能区分“细节”与“枝节”。从惯于“实做”的程
序员一路走来的工程人员,很难分清自己什么时候是在
“工作”,而什么时候又是在“决策”。
因此我只好用最笨的方法提示管理者:别管它是细节
还是枝节,只要你感到你的脚趾已经沾上了泥淖,就快点
回头。
用脚趾去感觉,有时比用头脑去思维来得有效。
7。 灵活的软件工程
并不象现代人想见的那样,古诗词一定是“逐字论平
仄”的。变化或者变通,其实是常见之事。因此古词谱中,
才常会见到冠以“摊破”、“减字”、“添字”等字的词格。
然则古人在词格上的这种变通,是基于“音律”的。
通常说的词律是指词格,这与音律是两回事。词律(格)
是平仄,音律则是乐器、音调与歌舞。古词中用来吟唱与
歌舞的词牌就不能混用,律不同,调不同,如是之。
“古人做词的变格,势必依音律而为之,舍周邦彦、东坡、
辛弃疾此等人物,轻易变格,是为他人所笑话的。所以,词谱中
所录变格既少,且俱为名家所创。”
然而古词的音律( 亦即是律谱) 已经失传了,也就是
说,今天的词是用来读的,不是唱,也不是舞,甚至连吟
哦也不是。所以今人总是拿普通话中的 1、2 声作为平声,
…106
…………………………………………………………Page 111……………………………………………………………
『大道至简』
3 、4 声为仄声来填词,并以此论平仄,而全然不想词的
格律的根基是“词律”与“音律”这两个部分的融合。
我曾经参与过一个讨论,叫“古人是如何说话的”。
在我看来,古人做文章和说话是两回事,文章中之乎者也,
日常交流中还是市井俚语的。因此评论中会说“以俚语入
词”。也可见填词作文章与说话毕竟是不同。再者说话也
存在方言的问题,因此方言之间平仄音调也当不同。古代
的歌妓是要求会“官话”的,这相当于现在“普通话”的
地位,她们歌唱起来,也是用的“官话”。
更进一步的推论是:古代的词律中的平仄是以官话为
基础的。然而如今的普通话毕竟不是古时的“官话”,也
就是说,即使我们以普通话的四声为基础在论平仄,在古
人看来,也是可笑的:这样做出来的词,依旧不可唱,也
不可读。
因此今人做词的标准,是应该重定的了。除了词格(这
里仅指字句的格式)和用韵之外,其它的部分是无法遵循
的了。在各字的平仄以及句式上,应当以“能通顺”和“能
品味”为准,风格上则以古雅为益。
仅此而已。
对于我这样的格律观点,一位网友曾有一句“未蕴而
变,自欺也。知律而变,智者之道也”,实为良言。变向
不变求。不变者,万变之所源,亦万变之所归。习诗词之
法度,若蚕虫之结茧,若无结茧于前,何有破茧于后?故,
知律而变,智者之道也。
…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
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!