共计 26 篇文章

《大道至简》的幕后故事(3):“愚公移山记”事物篇

引子 以古文述事,难点之一便在于我们对历史了解并不充分,因此常常把这个朝代的东西放在了那个朝代,或者让原本是甲做的事,说成了乙做。这样与史不合,容易使文章出笑话。这一篇“幕后”,便来说说“愚公移山记”中的事物。 不过由于这篇故事重在述事,所以对于“物”的描写并不充分,能拣出来谈的并不多,望谅。 1. 铁器 “愚公移山记”中对铁器的考证是一个非常令人痛苦的事。我从一开始便设想,到底有什么法子让愚公在太行山中挖出一条路来呢。然而思来想去, ...

《大道至简》的幕后故事(2):“愚公移山记”人物篇

引子 “愚公移山记”文言和白话两篇附录,是《大道至简》第二版中重要的组成部分。但我们这些读惯了技术书的人,大概是不会象文科生一样,一边考证着一边读古文,因此这篇“愚公移山记”中的背景,怕是没几个人会晓得。然而如果不了解这个故事的一些背景知识,那么读起来便不会有什么意思,不会知道其中的含义。 因此接下来的“幕后故事”,我将用一系列专题,来讲讲这个“愚公移山记”是如何写成的。 你可能不会想到,这将涉及到历史、地理、军事、 ...

《大道至简》的幕后故事

一、大道至简与愚公移山 《大道至简》一书最初的领悟来自那张EHM图。这个故事我在书中已经讲过:在一次Delphi.NET培训的准备工作中,我顿悟“语言只是工具”,并由语言的工具本质为起点,透视了整个软件工程体系。这张图后来被补充为“软件工程层次模型(EHM)”。而从这张图起,我便有开始为我的这些想法写出一本书来,而书的名字就是《大道至简》。 我写书是从前言开始,在写《大道至简》的前言(第一版的“前言后语”)时,我并没有想到从哪里开始写整本书。 ...

杀不死的人狼——我读《人月神话》(五)

<<= 上一节 五、从广义工程到狭义工程 现在我们回到一个实际的问题上:工程的本质需求是什么?如果我问一千个人工程的本质,可能会得到一千种答案。因为大家离本质的东西都很远,又从不同的角度去看这本质,故而得到的答案并不相同——而且每一种答案都貌似正确。 但是我问的是“本质需求”。对此,我的答案是:本质需求是“实现(工程的目标)”。 不管工程本质是怎样的,但这个需求如一。我们完不成它就等于失败,至于它是否是Brooks所说的“软件活动的根本任务”,与这个具体的工程无关; ...

杀不死的人狼——我读《人月神话》(四)

<<= 上一节 四、没有银弹,或人狼杀不死 人狼这个动物很奇怪,皮肉坚实还是自疗系的,所以要么砍它不动,要么杀它不死。这种动物如同习得(传说中的)金钟罩功夫,刀枪不入,水火不怕。也如同金钟罩有罩门一样,人狼对银没有免疫,因此如果做一颗银弹就能穿透它,进而杀了它。 所以人们总是说一物克一物,大象怕老鼠,总有对付它的法子。但如果你设定了一个自圆已说的悖论,那除了否定悖论本身没有意义,也就没有解它的法子了。同样的道理用在“ ...

杀不死的人狼——我读《人月神话》(三)

<<= 上一节 三、《人月神话》是预言了未来还是控制了未来? 事实是:我们现在的很多工程知识,——无论是从书上看到的,还是从实践中体验到的——大多未曾脱离《人月神话》之所言。 我在开篇中说《人月神话》“是一本可怕的书”。然而我认为真正的可怕之处在于:如今只要论及工程(且不要让人认为是离经叛道),那么所讲述的一定是Brooks的这样的经验以及由此推出的观点,或者在不违背这些经验和观点上的一些具体的实作方法!我们全然不顾书中所言是现象,还是本质的推论,或者只是现象归结的一个(未必正确的)答案。 ...

杀不死的人狼——我读《人月神话》(二)

<<= 上一节 二、哪些是现象,哪些是答案,而哪些才是本质? Brooks在1961年至1964年间,主持与领导了被称为人类从原子能时代进入信息时代标志的IBM/360。十余年后,在1975年,他将历年来所写的有关软件工程和项目管理方面的文章汇集成书,这就是《人月神话》。无疑的,《人月神话》是Brooks十年中对IBM/360与操作系统OS360等项目的不断反思的结果。 而在我看到Brooks这些言论的时候,我并没有为它们所震惊。我所叹服的是Brooks在30年前便具有这样深远的思想。可以想见,对于30年前的黑暗时代,这些思想无疑是明灯和烛火。 (你有否打算用十年来思考一个问题呢? ...

杀不死的人狼——我读《人月神话》(一)

前言 在这与这段文字之前,我已经阅读过种种关于《人月神话》的文字。评论者既有刘天北这样的美食家,试图在书页中夹点胡椒面以慢慢品味,为了表现食客特有的风格,他的书页都比别人数得仔细。也有marktsen这样的速食者,试图几句话就打发了自己或者读者那漉漉的饥肠。 阅读这些文字给我带来的收获是:面对《人月神话》,除了表示五体投地的诚服,你既不能做正面言论(那是多余),也不能做负面言论(那是找事)。 这是一本可怕的书。 我大概花了三周的时间来细读这本书——也许很多人会说我应该花更多的时候或者读更多遍——不过,这不是重点。我在书中印证和找寻思想,并为这本书写下了数百个注释。 ...

也说读书

常去周筠老师的博客上看,有时候便感叹啊:找到一个好的博客,比找到一个好的书店更有价值。因为什么呢?因为好的博客不但有好的文章,也有好的推荐。 我自己的博客里,少有推荐,便是自认没有荐者的眼光。所谓千里马常有,伯乐不常有。我做不成伯乐,便不去随便指认马的好劣。但周老师显然是好伯乐,因为我常常在她那里读到好文章。 今天读到的,是关于读书的文字。有文有荐。 读的时候,我却在想了,我实在不是读书人。周老师上千本的书是读了的,我呢,不算课本的话,百本怕也不到。 ...

你的灯还亮着吗?

查资料时,看到一个网友写的书摘,关于温伯格的这本书的。很不错,抄过来先放着 1,搞清谁(问题的对象)有问题. 2,问题的本质是什么 大多数问题其实就是你期望的东西和你体验的东西之间的差别. 解决办法是要么改变期望,要么改变体验. 3,不要把他们解决问题的方法误认为是问题的定义—特别是在你使用自己的解决方法时(要搞清楚问题的定义) 4,如果你太轻易的解决了他们的问题,他们永远不会相信你真的解决了问题 5,你永远都不能肯定你已经有了一个正确的定义,即使在问题已经解决之后,但永远不要放弃寻求它的努力 6, ...

经典的《JavaScript 权威指南》中的“对象”不经典

这些天在为Qomo项目写“JavaScript面向对象的支持”这组文章。也一直在期待网上购得的那本《JavaScript 权威指南》(第四版)快快到来。 在前公司,有这本书的第二或第三版,也一直将这本书视为经典。但那时并没有深入的去看它前几章的概念性叙述,而是把它当成一本手册来查。现在却刻意地关注了,因为Qomo的底层是以纯理论的OOP为基础的。 今天这本书终于寄到了,但是一读之下,大失所望。不知道作者对JavaScript语言的理解能力不够,还是他对OOP的理解不够。《JavaScript权威指南》这本书对面向对象的叙述不但不专业,而且还错误百出。实在不值一看。 试举几例: JavaScript没有正式的类的概念, ...