1000copy Review for “the design of design".
从论坛和微博和同事等渠道,我知道fredicks brooks ,那个《人月神话》的作者有出书了。
同事买了一本《设计原本》,昨天晚上清净的时候,就顺便看看,所幸厚度不大,花了N个小时通读,这本书的架构基本上比较清晰了。
可是从阅读以来就不太平静。想要说说我的看法。
首先是阅读感受。
“这不是一本可读性比较强的书,并且不值得回头在看”。说实在的,这和我原来的看法相左,有点难受——毕竟这是一个前辈,不说老而弥坚,至少文字应该更加容易阅读,更加能够照顾读者的阅读顺流的习惯。这本书给我的感觉是不停的切换,不停的跳转,如同代码中很多goto语句一样,让本来可以优美的设计之源变得非常的犬牙差互。
其次是读者范围。
我认为如果你刚刚有一些设计经验的话,不需要考虑购买这本书。因为它的英文名字是the design of design ,这个题名还是比较切合内容的。它的着眼点是对设计进行设计,就是说,这是元设计。也许你会说,元设计难道不是设计吗?OK,programing 和metaprograming是完全不在一个数量级的,正如设计和元设计的复杂度不在一个数量级一样。meta打头的没有不复杂的,你不妨看看任何一个语言都可以用helloworld还快速开始,而MPS(Meta programing System——jetbrain的一个产品)这样的元编程就复杂的太多了。mps的 tutorial你试着阅读下,看看几天内是否可以把它搞得清楚明白。我不认为一个退休了,忙着装房子的老人能够有能力驾驭这个主题。
如果你设计经验非常丰富,比如5年以上,我建议你也不要购买。因为太过空泛,难以让人可以从中得到比较直接的指导。继续从副题名看,Essays from computer scicent。这个Essays ,就是我们常常说的格言,想想看,格言拿来干什么,通常是给中学老师教育小孩子的时候,通过断章取义灌输自己的私货的。尽管我上面一段提到他的着眼点在于meta design,可是他的论据是什么呢?不外乎是20年多前的IBM sys 360,和功成名就后自己建立的一个house的过程。作为一个程序员或者程序设计师,你真的关心他的house如何建立,他如何分配厨房,卧室给他的老婆Nancy和几个孩子,以及如何采光等等吗?论据的不足必然说明这是一个他想要做design of design 的一个尝试,也必然是非常不成功的一个尝试。Fredicks不是天才,如此大的跨界(从程序项目管理到建筑设计)我没有见过真正成的先例。
不然你让克里斯托弗·亚力山大(建筑设计模式的作者)谢谢软件界的设计模式看看。即使本领域内的,以他举出的JCL(任务控制语言)的设计为例,就说的不明不白,一个项目经理是不可能对设计提出真正的意见的。
依我看,从JCL设计失误的评价上看,他感叹人生多于对设计本身原则的提炼。
想要计算机考古的人,不妨买来看看,反正做考古的人有的是时间,大可以顺着所谓的信手拈来的典故,后面如麻般的参考文献顺藤摸瓜。你还别说,参考文献这么多的,比如你还有兴趣了解IBM JCL 语言规范的,可以真的去看看。当然你这样做还有一个机会成本,那就是你可能需要摸到IBM的档案柜前面,而置手边的google和wikipedia这样的宝库而不顾。
说不定档案柜内的纸板的handbook摸起来就会手感很好啊。
和brooks一个年代的人可以看看,当然我随便说说的,我这年龄,还无法设想这样的场景:“坐在炉子边上,抚摸着一条老黄狗,和孙子说,你爷爷年轻的那会,设计个高级的JCL语言,最后和汇编的开发效率差不多哈”。喜欢复杂的,绕脑筋而不求功利的人可以看看。
我是说真的,“我有一个很厉害的程序员,花费了几个月时间研究hashell,我问他为什么看这个几年内也用不上的东西呢?他说,因为他复杂”。再说一遍,我是说真的,我很佩服这个程序员的。他尽管hashell没有用上,但是他做事情的缜密思维大约和喜欢研究复杂的实物有关。不过这样的人我工作多年,也只看到一个。如果你认为你是这个百里挑一的人,你可以试试。话说回来,你要试试,不如试试hashell,因为,你知道,我又要说机会成本了。
关于案例。
这本书的案例中的house建立完全就是败笔,可以直接拿掉。他在这个领域是不专业的,他在给自己建房子,他没有客户,没有人评价他,没有人为这个事情买单,他就是自己的用户。你真的可以相信一个给自己建了一个房子的人可以在建筑领域大谈经验吗?我看了amazon的本书评价,其中有几个给了3星或者以下评价的都有类似的看法。
另外一个案例里面他提到了一个劳斯莱斯的什么牛的设计系统。说说我刚刚有点感觉,他马上补充了:”这个东西有专利的,劳斯莱斯不让看“。所以 ——你知道,就没有下文了。这是21世纪啊,还有这么神秘的、刚强的,不为人知的、但是有非常实用的一个软件存在,真的吊起了我的胃口。然而通过继续看这本书找答案显然是死路一条的。等我哪天有兴趣了,我用万能的wikipedia和google查查,是不是真有其事。
关于写作风格。
而brooks 的案例的编写看起来不是一本书的章节,而更加像是powerpoint的keyword。大量的dot bullet,大量的跳转和上下文的切换。如果把人的大脑比作cpu的话,这样多的切换真的如同一门语言的名字:brainfuck。在powerpoint这样写不完全是问题,因为powerpoint是为了讲课服务的,讲课内容是主体,speaker是主体,ppt只是一个纲要,很多时候,这不是问题。但是,拜托,这是一本书啊,你brooks不在我的身边啊。
不知道译者的原因还是本来如此(应该不是本来如此),其中看到的摆在章节开头的一些英文的essays都存在明显的大小写问题,比如sOFTwAre这样的单词。有点像是过山车,突然来到一个年轻的、hacker的领域。我知道一个朋友做hacker的,他的网名就是这样的奇形怪状。至于其中内部存在的一些重复的句子,重复的单词,让我想起《忐忑》。计算机科学巨匠啊,这样急迫的出中文版,是不是有点像是一代宗师非要和巨鲸帮火并呢。这样的书籍在国内的书评几乎千篇一律,在amason上也只有区区19条,总觉得本来是华山论剑的谱,突然变成了岳不群的君子剑法。
不妨看看 amason的主页:http://www.amazon.com/Design-Essays-Computer-Scientist/dp/0201362988/ref=cm_cr_pr_product_top
这里的评价还是很中肯的。我试着列出持推荐态度的人的观点如下:
1. 要买。因为这是《人月神话》的作者,IBM360会是其中的案例。可是《人月神话》成功,不意味着这本书也会成功。我常备多年的书籍包括winberg的系列,人件,cc2,重构,都是反复阅读的常常可以获得新知的,但是《人月神话》,我认为只是对IBM360这样的史前巨兽好奇而偶尔翻翻。
2. 要买,因为他鼓励的个体的天才而不是委员会的臃肿。可是,Apple这么红不就是因为如此吗?福特当然汽车行业老大不也是因为如此吗。60年代的时候这一点并不显然(也许),而今互联网时代,Agile大行其道的年代,这一点不是太显然了!何况和jobs那样鲜活的经历相比,brooks的ppt体书籍也实在不能支持这样的论点。真的谈到人性的价值的话,还是要看《人件》,这是经典。
3.要买。因为No-silver bullet。这个论据我不喜欢——未必是因为论据本身,而是因为总是说这个的人如同背诵语录,让人觉得已经大脑麻木了,何谈让别人相信呢。正如引用《堂吉诃德》的人必然说战风车一样,让人怀疑说者是否真的看过《堂吉诃德》。在我看来《堂吉诃德》的吸引人之处不是这个傻骑士的不传奇的经历,而是贯穿其中的几个美人的传奇的爱情故事——还有异域风情的,比如摩尔美女。有美人、有传奇、有异域,好不好?
4. 提出了设计约束的存在。好吧,这么显然的东西说出来可不能算是发现吧。
为什么一个类似笔记体的内容,会被当成书籍来出版呢?
名人的光辉,常常让大多数人主动的带上眼镜,然后。。。失真,在然后。。。失贞。失去自己的判断能力,然后既无所得,然后不敢质疑权威,然后默然 。
每念于此,常常想起那个牛人卢梭说过:“人生而自由,却无往不在枷锁之中。
这是一本大失水准、远低于期望的书。这说明有些老人该腾出地方,好好的搞自己的房子,过自己的生活,比如去瓦尔登湖那里钓鱼什么的,然后给其他新的人杰一些出版和发言的机会。
感谢达尔文的进化论。毕竟“个体的力量无法承载进化的能量”。
分享到:
相关推荐
该项目为基于Freemarker框架的SSM书评网设计源码,总计包含332个文件,涵盖150个GIF图片、54个JavaScript脚本、32个XML配置、25个Java源码、16个PNG图片、14个CSS样式表、10个Freemarker模板、4个EOT字体、4个SVG...
书评网的数据库设计通常包括用户表、书籍表、书评表等,每个表都有其特定的字段,如用户表可能包含用户名、密码、邮箱等字段,书评表可能包含书评ID、用户ID、书籍ID、评论内容等。 **6. 模块化设计** 项目中可能会...
本项目是一款基于SSM框架构建的慕课书评网设计源码,包含345个文件,其中包括18个Freemarker模板文件、54个JavaScript脚本文件、43个Java类文件、23个XML配置文件、16个PNG图像文件、14个CSS样式表文件以及少量的...
本项目是基于SSM架构开发的Java书评网设计源码,主要使用Java进行开发。项目共包含139个文件,其中XML配置文件38个,Java源代码文件27个,编译后的Java字节码文件25个,PNG图片文件7个,JavaScript源代码文件5个,...
《毕业设计书评管理系统 前端后台源码》是一个典型的IT项目,涵盖了软件开发的多个重要方面。这个系统主要用于管理书评,提供了一个全面的平台,包括前端用户界面和后端服务器处理,是学生进行毕业设计或期末大作业...
Java毕业设计 基于SpringBoot+Vue开发书评系统的设计与实现+部署文档+全部资料(优秀项目)Java毕业设计 基于SpringBoot+Vue开发书评系统的设计与实现+部署文档+全部资料(优秀项目)Java毕业设计 基于SpringBoot+...
这个“毕业设计项目,书评管理系统 前端后台.zip”压缩包提供了一个完整的前端项目源码,适用于毕业设计、课程设计或者作为学习资源。让我们深入探讨其中涉及的关键技术与知识点。 1. **前端技术**: - **Vue.js**...
本项目是一款基于SSM框架和Freemarker技术的书评网设计源码,涵盖259个文件,包括75个GIF图像、49个Java源文件、31个XML配置文件、27个JavaScript文件、20个JAR库文件、11个Freemarker模板文件、9个PNG图片文件、8个...
数据库课程设计是IT教育中的一个重要环节,它通常要求学生运用所学的编程语言和数据库管理技术来构建一个实际的应用系统。在这个案例中,我们关注的是一个"网上书评管理系统",它是用C#语言实现的,并且涉及到数据库...
本项目为“基于Java和Web技术的书评网站设计源码”,包含534个文件,其中包括109个PNG图像文件、107个JPG图像文件、89个JavaScript脚本、51个GIF图像文件、40个Java源文件、35个JSP页面、31个CSS样式表、26个HTML...
在这个特定的“数据结构课程设计”任务中,学生被要求解决一个有趣的数学问题,即“猴子与桃子”的问题。这个问题旨在考察学生的逻辑思维能力和对数据结构的掌握程度。 首先,我们需要理解问题背景:一群猴子每天吃...
该项目是基于网络书评文本内容的个性化书籍推荐系统设计源码,包含40个文件,包括31个Java源文件、3个YAML配置文件、1个Git忽略文件、1个Markdown文档、1个Maven构建文件、1个命令行脚本、1个XML配置文件和1个文本...
本项目是一款基于HTML、JavaScript及Java、XML等技术的书评网站源码,总计...网站功能丰富,模拟豆瓣评分系统,涵盖图书展示、用户登录、图书搜索、书评撰写、热门评论浏览、点赞互动和阅读状态跟踪等一整套书评流程。
本项目是一款基于Python的轻量级书评系统设计源码,总文件数达到55个,涵盖44个Python源文件、4个HTTP配置文件、1个Shell脚本文件、1个YAML配置文件、1个Git忽略文件、1个LICENSE文件、1个sqlite3数据库文件、1个...
本项目是基于Vue和uni-app框架开发的全平台短书评项目,包含71个文件,其中包括21个Vue组件文件、15个JavaScript脚本文件、13个JSON配置文件、9个PNG图像文件、3个gitignore文件、2个HTML页面文件、2个CSS样式表文件...
侯杰书评文摘,讲述编程的经验之谈