Disclaimer: 我和作者是好友,和这本书的出版社有合作,我关于这本书的有些讨论也收入了这本书的一开始。
这是一本我极力推荐的书。
当年博文视点的编辑让我做这本书的技术审校的时候,我这样回复:
单从目录来看就知道, 这是一份质量上乘的书稿,我很愿意审阅书稿。The Structure of Scientific Revolution (TSSR) 就说, Paradigm (范式) 的改变就是思维模式的革命。 我读过的很多编程书, 如 Programming Language: Concepts and Constructs 以及 Programming Language:
Principle and Practice 都是以 Paradigm 讲解的。在中文书的世界,以范式展开讲编程的书少之又少,因为这种书籍需要对各种编程语言了然于心,对 TSSR 的思想熟稔于胸。希望郑晖先生的这本书能够在这个方向上有斐然的突破。
现在回头看看豆瓣的书评,有很多人还是不理解这本书的含义,而仅仅是看到表面的技术,或者体会到了“哲学”或者“思辩”色彩,但没有深究为什么有哲学和思辩色彩。
首先,作为一本技术书,可以说作者技术非常扎实。编程技术多如繁星,Paradigm 虽说不多,想要了解到能写书,的确需要扎实的功底。在这个问题上,读者只需要翻翻全书,就知道这里的积淀了。因此在这个问题上我不累述。
编程作为一种实践,联系着现实问题和我们的大脑。必然的,如果深究这种领域,就会有两个绕不过的问题:
1. 我们怎样去抽象现实的问题 (哲学上的认识论 [epistemology])
2. 我们怎样解决这些问题,用什么方法(工程上的最佳实践 [best practice])
无数的编程书教人编程,教人怎么面向对象,怎么用设计模式。这些都可以让人很快上手编程。如果我们不想深究这些最佳实践后面的道理,对付小程序是绰绰有余的。如果我们想要知道,一个最佳实践什么时候用,就需要超越这些最佳实践,了解他们背后的道理。这就绕不开认识论了。
以 Kuhn 为代表的一些科学哲学家,在 20 世纪对“科学”这个学科本身的哲学研究中,提出了“范式"这样一个概念。也就是说,不管科学看上去多么庞大,其实背后有一种指导性的思想。这种指导性的思想,横贯渗透到科学家的每一篇论文,每一项研究。范式的概念一经提出,就迅速被人们运用到各种场合。编程范式,就是 Kuhn 的科学哲学的一个应用。
我们都在用不同的范式编程,面向对象和面向过程只是冰山两角。作者在这本书的前半部分从不同的角度解读了这些范式。读者首先需要有恰当的知识结构,和一种“科学哲学”的思维方式。 才能完全了解编程范式的意义。不理解的会说作者在故弄玄虚装逼,这也没办法。我想阅读一点科学哲学,多学几种语言,然后回过来看这本书或许收获会更大。编程范式和后面的面向对象的抽象原则,都是一些技术层面上的论述,本身可能只会让读者觉得“恩,很有道理”。然后就忘了。真心想要和作者产生共鸣,理解这本书的脉络,理解作者他为什么就这么想,这么写的,除了需要一些技术方面的准备外,还需要理解,作者是想通过对编程中的各种最佳实践的讲解,最终授人以渔,让读者完成这种从最佳实践到思维方式的转换(包含范式等看问题的角度,抽象等看问题的原则等等)。 当然这种东西也只是说给有心人看了。
对于精通技术的读者,我可以再技术上多展开一些。书前半部分的范式是大家从所周知的,书后半部分的面向对象的原则,实际上也是围绕 SOLID 原则展开的。所以说,从最佳实践的角度看,这本书相当于是把众多编程书籍融合了一下。单纯从技术上来说,挑剔的读者会觉得给 4星也就差不多了,这无可非议。然而,诸位可以拿出 Robert Martin 的那本书,和这本书放在一起比对一下,看看 Bob 大叔的那些原则,是否讲透,将明白。 Bob 大叔做咨询的,概念抛出来就可以赚钱了,无须和你讲清楚这概念是他天外飞仙悟道的,还是高人传授的,也无需和你说明白除了设计 ATM 机以外接口分离原则还有什么用。现在有本书,讲同样的技术,只是额外又告诉你这些概念的来龙去脉,你还觉得这书只是技术上的重复么?
鉴于以上理由,本人极力推荐这本书。
从 Kuhn 到科学哲学再到SOLID
对“从 Kuhn 到科学哲学再到SOLID”的回应
《冒号课堂》热门书评
-
假如,我能上这样的课
70有用 1无用 Milo 2010-07-04
首先声明,自从2010年初开始写书评后,偶然认识本书作者。因对本书内容感兴趣,才从当当自购本书,并承诺会写书评。但本人因同时间开始业余翻译工作,共花了数月才读毕本书。为保持尽量客观独立,本文刊登前并未经他人审阅。 本书分为两部分,上篇为“编程范式与编程语言”,下篇为“抽象机制和对象范式”。先分别谈上...
-
从 Kuhn 到科学哲学再到SOLID
23有用 0无用 编程珠玑番外篇 2011-03-25
Disclaimer: 我和作者是好友,和这本书的出版社有合作,我关于这本书的有些讨论也收入了这本书的一开始。 这是一本我极力推荐的书。当年博文视点的编辑让我做这本书的技术审校的时候,我这样回复:单从目录来看就知道, 这是一份质量上乘的书稿,我很愿意审阅书稿。The Structure of Sci...
-
極高明而道中庸
21有用 0无用 PandaHermit 2010-02-21
全書談得是軟件開發中最“抽象”的東西,但是沒有一點故弄玄虛的感覺,實實在在的心得體會,看得出作者的底子非常的扎實,沒有這類書通常有的人云亦云,語焉不詳,故弄玄虛的弊病。層層推進,剝繭抽絲。對話体用的也很成功。 這本書讓我原先對軟件設計很多似是而非、似懂非...
-
冒号课堂——将我带入编程的第三层境界
13有用 8无用 depeng 2009-11-26
“ 看山是山,看水是水。看山不是山,看水不是水。看山还是山,看水还是水,但是山更绿,水更清。”人生有三层境界,编程境界也和人生境界惊人的相似。从大学期间接触编程,那时的我,迷恋于各种“名词”,什么对我都是新鲜的,我疯狂的吸收着养分,但是没有多少自己的思维,别人说C好就学C,别人说C++好就学C++,...
-
希望这只是开始
12有用 0无用 Todd 2010-08-10
或许我算是《冒号课堂》最忠实的读者了,在郑老师为本书开辟的论坛上大部分的问题都是我提出的。从第一次在网上看到连载开始,我就加上了郑老师的gtalk,常常请教问题。两年来,在和郑老师的交流中,我感到对很多问题认识更深了,角度更广了,更重要的是能够站在更高的层次把握问题的本质,所得的收益绝不仅仅是书上这...