《冒号课堂》以课堂对话的形式,借六位师生之口讲述编程要义。上篇对编程范式作了入门性的介绍,并对一些流行的编程语言进行了简评;下篇侧重阐发软件设计思想,其中在范式上以OOP为主,在语言上以C++、Java和C#为主。全书寓庄于谐,深入浅出,既可开阔眼界,又能引发思考,值得编程爱好者品读。
......(更多)
郑晖,男,年方不惑。1986年入武汉大学数学系学习,1993年毕业后到高校教书三年。1996年赴美攻读数学博士学位,1998年开始选修计算机课程。2000年获计算机硕士学位,随后到华尔街一家IT公司就职。2004年底回国,先在广州一所IT外企工作,后出任一家软件公司的技术总监。从2008年4月起,在网上发表连载博文《冒号课堂》(原名《冒号和他的学生们》)。个人博客:。
......(更多)
上篇:编程范式与编程语言
第1课 开班导言
1.1 开班发言——程序员的4层境界
1.2 首轮提问——什么语言好?
1.3 语言选择——合适的就是好的
1.4 初识范式——程序王国中的世界观与方法论
1.5 开发技术——实用还是时髦?
第2课 重要范式
2.1 命令范式——一切行动听指挥
2.2 声明范式——目标决定行动
2.3 对象范式——民主制社会的编程法则
2.4 并发范式——合作与竞争
第3课 常用范式
3.1 泛型范式——抽象你的算法
3.2 超级范式——提升语言的级别
3.3 切面范式——多角度看问题
3.4 事件驱动——有事我叫你,没事别烦我
第4课 重温范式
4.1 函数范式——精巧的数学思维
4.2 逻辑范式——当算法失去了控制
4.3 汇总范式——一张五味俱全的大烙饼
4.4 情景范式——餐馆里的编程范式
第5课 语言小谈
5.1 教学计划——接下来的故事
5.2 数据类型——规则与变通
5.3 动态语言——披着彩衣飞舞的脚本语言
5.4 语言误区——语言的宗教情结
第6课 语言简评
6.1 系统语言——权力的双刃剑
6.2 平台语言——先搭台后唱戏
6.3 前台语言——视觉与交互的艺术
6.4 后台脚本——敏捷开发的利器
下篇:抽象机制与对象范式
第7课 抽象封装
7.1 抽象思维——减法和除法的学问
7.2 数据抽象——“做什么”重于“怎么做”
7.3 封装隐藏——包装的讲究
第8课 抽象接口
8.1 软件应变——随需而变,适者生存
8.2 访问控制——代码的多级管理
8.3 接口服务——讲诚信与守规矩
第9课 继承机制
9.1 继承关系——继承财富,更要继承责任
9.2 慎用继承——以谨慎之心对待权力
第10课 多态机制
10.1 多态类型——静中之动
10.2 抽象类型——实中之虚
第11课 值与引用
11.1 语法类型——体用之分
11.2 语义类型——阴阳之道
第12课 设计原则
12.1 间接原则——柔胜于刚,曲胜于直
12.2 依赖原则——有求皆苦,无欲则刚
12.3 肉聚原则——不是一家人,不进一家门
12.4 保变原则——与魔鬼打交道的艺术
第13课 设计模式
13.1 创建模式——不要问我从哪里来
13.2 结构模式——建筑的技巧
13.3 行为模式——君子之交淡如水
13.4 闭班小结——软件无形,编程有道
索引
设计手记
编辑手记
......(更多)
如果把对象看做产品,把具体类看做一个制作产品的模具,那么接口就是模具的规格标准,而抽象类是再模具加工过程中产生的半成品。
许多编程设计思想,包括OOP的思想都是以提高应变能力为主题的。抽象与封装便是典型代表。 抽象一个对象模型即是将一类对象最本质因而最不容易变化的部分提炼出来,而封装------准确说是信息隐藏------则是将非本质、容易变化的部分隐藏起来,从而将一个类划分为阴阳两面。
......(更多)