- 上篇:编程范式与编程语言
- 第一课 开班导言
- §1.1:开班发言——程序员的四层境界
- §1.2:首轮提问——什么语言好?
- §1.3:语言选择——合适的就是好的
- §1.4:初识范式——程序王国中的世界观与方法论
- §1.5:开发技术——实用还是时髦?
- 第二课 重要范式
- §2.1:命令范式——一切行动听指挥
- §2.2:声明范式——目标决定行动
- §2.3:对象范式——民主制社会的编程法则
- §2.4:并发范式——合作与竞争
- 第三课 常用范式
- §3.1:泛型范式——抽象你的算法
- §3.2:超级范式——提升语言的级别
- §3.3:切面范式——多角度看问题
- §3.4:事件驱动——有事我叫你,没事别烦我
- 第四课 重温范式
- §4.1:函数范式——精巧的数学思维
- §4.2:逻辑范式——当算法失去了控制
- §4.3:汇总范式——一张五味俱全的大烙饼
- §4.4:情景范式——餐馆里的编程范式
- 第五课 语言小谈
- §5.1:教学计划——接下来的故事
- §5.2:数据类型——规则与变通
- §5.3:动态语言——披着彩衣飞舞的脚本语言
- §5.4:语言误区——语言的宗教情结
- 第六课 语言简评
- §6.1:系统语言——权力的双刃剑
- §6.2:平台语言——先搭台后唱戏
- §6.3:前台语言——视觉与交互的艺术
- §6.4:后台脚本——敏捷开发的利器
- 下篇:抽象机制与对象范式
- 第七课 抽象封装
- §7.1:抽象思维——减法和除法的学问
- §7.2:数据抽象——“做什么”重于“怎么做”
- §7.3:封装隐藏——包装的讲究
- 第八课 抽象接口
- §8.1:软件应变——随需而变,适者生存
- §8.2:访问控制——代码的多级管理
- §8.3:接口服务——讲诚信与守规矩
- 第九课 继承机制
- §9.1:继承关系——继承财富,更要继承责任
- §9.2:慎用继承——以谨慎之心对待权力
- 第十课 多态机制
- §10.1:多态类型——静中之动
- §10.2:抽象类型——实中之虚
- 第十一课 值与引用
- §11.1:语法类型——体用之分
- §11.2:语义类型——阴阳之道
- 第十二课 设计原则
- §12.1:间接原则——柔胜于刚,曲胜于直
- §12.2:依赖原则——有求皆苦,无欲则刚
- §12.3:内聚原则——不是一家人,不进一家门
- §12.4:保变原则——与魔鬼打交道的艺术
- 第十三课 设计模式
- §13.1:创建模式——不要问我从哪里来
- §13.2:结构模式——建筑的技巧
- §13.3:行为模式——君子之交淡如水
- §13.4:闭班小结——软件无形,编程有道



最近一直在读冒号课堂,写的很生动,加油!
多谢鼓励!
乔迁大吉:)
谢谢,欢迎有空多来作客!
受益匪浅,期待下篇!
太强了,对编程的理解已经炉火纯青了,佩服佩服
编程之道,可以在这里欣赏到。一定看看软件无形,变成有道。
昨天听说的,今天来学习一下。
楼主的大作什么时候出版呀,期待了很久!
估计在十天之内上市,届时我会第一时间在博客上通知的。谢谢您的关注!
昨天当当订购的书到了。在看第七课,以前一直没搞清楚ADT是什么。
书中若有解释不周之处,敬请指出。
第7,8课很多内容是平时学习OO时感觉不起眼的内容,读了这本书以后才发现自己以前对ADT、封装、访问控制根本不了解。这些东西对做设计是非常重要的,因为只有明白道理才能做出恰当的设计。
真的很不错,我用很短的时间把软件知识都重温并深刻理解了一遍。真的很棒。
继承这一章讲到C++ public, protected, private继承的区别,以前学的时候都只从语法角度知道差别,没有去体会语义差别。其实,只有真正理解了语义,才能恰当地使用。
想请教一下Design by Contract和异常机制之间的关系。例如,下面的dictionary类的put方法把count <= capability作为precondition;与此相对的是不把它作为precondition,而是抛异常。这两种设计之间应如何选择?楼主认为哪种更好?
put (x: ELEMENT; key: STRING) is
– Insert x so that it will be retrievable through key.
require
count <= capacity
not key.empty
do
… Some insertion algorithm …
ensure
has (x)
item (key) = x
count = old count + 1
end
Design by Contract的关键是在系统中建立一种信用机制。如果这种机制得以全面使用,是比抛异常这种defensive programming更简洁、更优雅也更高效的选择。但如果系统中对DbC和defensive programming的使用没有规范化,或者包含来自不同开发组的代码,则为了保证代码的健壮性,通常会采用异常机制。一个比较现实的建议是,在public类的public方法最好包含防御性编码,因为它会有的来自外部的客户,其他的在可控制的范围内尽可能地采用DbC。
另:下次提问最好在“《冒号课堂》意见收集 ”下回复。谢谢!
好的,谢谢!
虽然内容很多了解,但是写的很不错啊
我昨晚做梦都梦见书里的内容了,哈哈
梦见老帽了