冒号课堂

郑晖

出版时间

2009-10-01

ISBN

9787121095450

评分

★★★★★
AI导读
核心看点
  • 以对话形式深入浅出讲解编程范式
  • 系统梳理OOP思想与抽象封装机制
  • 对比C++、Java等语言的设计哲学
适合谁读
  • 希望建立编程全局观的初学者
  • 从事软件开发与设计的工程师
  • 对计算机科学与设计模式感兴趣者
读前提醒
  • 上篇侧重范式入门,下篇聚焦OOP
  • 对话体风格轻松,但需独立思考
  • 部分读者认为后半部分略显仓促
读者共识
  • 有助于新手快速建立宏观编程视野
  • 对面向对象思想的剖析深刻且独到
  • 形式生动有趣,但部分观点较抽象

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "许多编程设计思想,包括OOP的思想都是以提高应变能力为主题的。抽象与封装便是典型代表。 抽象一个对象模型即是将一类对象最本质因而最不容易变化的部分提炼出来,而封装------准确说是信息隐藏------则是将非本质、容易变化的部分隐藏起来,从而将一个类划分为阴阳两面。"
  • "如果把对象看做产品,把具体类看做一个制作产品的模具,那么接口就是模具的规格标准,而抽象类是再模具加工过程中产生的半成品。"
  • "OOP虽然是在命令式的基础上发展起来的,但其核心思想可泛化为:以数据为中心组织逻辑,将系统视为相互作用的对象集合,并利用继承与多态来增强可维护性、可扩展性和可重用性。这种思想也能应用到函数式和逻辑式中,只不过对象的方法从命令式中的过程分别换成函数式中的函数和逻辑式中的断言罢了。大致说来,命令式、函数式和逻辑式互相平行,而OOP与它们正交。"
  • "首先,将可维护性、可扩展性和可重用性与OOP划等号,是只见树木,不见森林——那是所有范式和语言的共同目标。其次,以C语言为例,信息隐藏可用关键字 static 来实现;继承可用合成(composition)来代替;多态可以利用函数指针来实现。更何况这些只是手段而非目的,只要设计合理,C程序同样具有可维护性、可扩展性和可重用性,性能效率还更优越。"
  • "C函数不像Java对象,本身没有状态,只有依靠参数传递或外部变量来维持相关函数之间的联系,包装后的接口肯定不如Java简洁,但应该比Java高效。说白了,OOP就是将相关的函数用数据粘合,重新包装后再贴上对象的标签。从这种角度上看,与基说OOP更具重用性,不如说更具易用性。"
  • "“对一个没有独立思考习惯的人来讲,与其说他认同一个理论,倒不如说他认同该理论倡导者的权威。而在他仰视权威的同时,也把自己的思想交托给了权威。”冒号颇具犬侕之风,“你们可以怀疑我的观点,但绝不可放弃自己的思考。”"
  • "冒号在黑板上写下—— 方案一:洗茶杯;放茶叶;灌水壶;烧水;水开后泡茶。 方案二:灌水壶;在烧水的同时,洗茶杯;放茶叶;水开后泡茶。 引号见多识广:“我记得这好像是运筹学中的例子,显然方案二更佳。从编程的角度来看,方案一是串行式编程,方案二是并发式编程——烧水的线程与洗茶杯、放茶叶的线程是同时进行的。” “如果方案一也用并发式编程呢?”冒号追问。 引号一愣,随即道:“必须先洗茶杯后放茶叶,洗茶杯放茶叶的同时也没法烧水,至于泡茶,更得等水开之后了。” 句号明白了冒号的用意:“这就是说,单凭并发式编程并不能保证提高程序性能,还必须在程序设计上下功夫。”"
  • "并发式编程以进程为导向(Process-Oriented)、以任务为中心将系统模块化。"
作者简介
郑晖,男,年方不惑。1986年入武汉大学数学系学习,1993年毕业后到高校教书三年。1996年赴美攻读数学博士学位,1998年开始选修计算机课程。2000年获计算机硕士学位,随后到华尔街一家IT公司就职。2004年底回国,先在广州一所IT外企工作,后出任一家软件公司的技术总监。从2008年4月起,在网上发表连载博文《冒号课堂》(原名《冒号和他的学生们》)。个人博客:http://blog.zhenghui.org。
目录
上篇:编程范式与编程语言
第1课 开班导言
1.1 开班发言——程序员的4层境界
1.2 首轮提问——什么语言好?
1.3 语言选择——合适的就是好的

显示全部
用户评论
前面部分的编程范式挺不错的,至少让我对这一块有了了解;后面部分是老生常谈的面向对象设计,作者讲的蛮有突破性,但是设计这档子事,是靠经验中体会来的
前半部分形而上的讨论很对胃口,后半部分对OO的细致分析让我自惭形秽,自认为对细节非常关注,其实还是远远不够。
这本书对面向对象的讲解是我看过的所有技术书籍中最深入的,也是最直白的,获益匪浅。作者的文字和书中涉及的知识面之广都令人惊叹,国内少有的独创高水平技术书籍。
神书,可惜最后一章写得太过匆忙。希望郑晖再出一本讲FP的。
程序细节只看得懂四分之一,不过俺晓得做事情的好模式总是相似的。
此书作者是数学系毕业,然后从事IT行业,但是难得的是他的文字功底如此深厚,比如“语感强者,能听弦外之音,能说双关之语,能读隽永之作,能写晓畅之文”这种工整的句子信手拈来,实在是难得。另外此书每一章开头必定引用一句古文,意思能和章节主旨相关联,内网很多优秀的文章也会这么做,比如在新一版的规约中开头会提到“尺寸也,绳墨也,规矩也,衡石也,斗斛也,角量也,谓之法”,《Java代码精简之道》一文开头提到“道为术之灵,术为道之体;以道统术,以术得道”。这本书中关于抽象的章节引用的恰到好处,“善张网者引其纲,不一一摄万目而后得”,用纲和目的关系辩证说明了OOP的思想精髓。但是全篇看下来也有点累,一来是由于对话体的形式,有些地方的类比显得繁琐;另一方面是部分代码示例还是SWT图形管理界面,会有点格格不入。
大学阅读过,蛮喜欢。为什么呢?国内教科书和老师的授课之道落后业界太多,看国外的公开课或是书籍,又苦于外语。经济上制造业升级,市面培训机构,个人博客层出不穷,讲述却不成系统。BAT等公司高手虽如云,但能力强不代表会表述等等。这本书的价值便体现出来。
一本有些过时的PL科普, 考虑到是09年出版的,不能算是缺点。 就是废话有点多,60% 以上都是情景描述
一本在书架上放了好多年的书,最近拿出来看完了, 感觉很是过瘾,里面核心的就是一个词:抽象,围绕这一点,展开万法讨论,这种对话体也不太好写,作者力道掌握的不错。 知所先后,则近道矣,一本值得反复学习和推敲的好书,可惜成书较早,没有对于python讲解。
书很不错,不过还是要有相当的经验以及对不同类型语言的理解才能读懂,还是有不少帮助的
下载
收藏