|
《冒号课堂》目录 《冒号课堂》目录
- 下篇:抽象机制与对象范式
- 第七课 抽象封装
- §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:闭班小结——软件无形,编程有道
 请您评分:     (已有 1人评分,平均分为: 5.00 / 5)
|
|
最近一直在读冒号课堂,写的很生动,加油!
多谢鼓励!
乔迁大吉:)
谢谢,欢迎有空多来作客!
受益匪浅,期待下篇!
太强了,对编程的理解已经炉火纯青了,佩服佩服
编程之道,可以在这里欣赏到。一定看看软件无形,变成有道。
昨天听说的,今天来学习一下。
楼主的大作什么时候出版呀,期待了很久!
估计在十天之内上市,届时我会第一时间在博客上通知的。谢谢您的关注!
昨天当当订购的书到了。在看第七课,以前一直没搞清楚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。
另:下次提问最好在“《冒号课堂》意见收集 ”下回复。谢谢!
好的,谢谢!
虽然内容很多了解,但是写的很不错啊
我昨晚做梦都梦见书里的内容了,哈哈
梦见老帽了
呵呵,买了您的书,还堆着没看呢…..
估计假期会有时间.
拜读大作!
看过的最好的一本设计模式的感悟类书籍,贯穿全文的就是区分软件中的变化与不变.然后针对易于变化的软件部分进行防御式设计.
难得的是能够在书中贯穿一些哲学的道理和方法论,非常好.
请问作者有没有出版第二版的打算啊?
如果第一版售罄,那么会出修订版。
请问作者有出第二版的打算么?
您确切的意思是?
不好意思,发重复了
看完了上篇,很开阔视野,收获很大,谢谢作者,这应该是一本常读常新的书。下篇是没有开放是吗?
是的,下篇尚未开放。
请问一下是否有电子版出售,例如在ibooks里面?因为本人在国外,买国内书不太方便,但又非常想看这本书,谢谢。
非常抱歉,目前没有电子版出售。我有机会向出版社建议,不过决定权还在他们。
能看到前六章也受益匪浅了。等以后有机会,再购买纸质书支持您。
多谢支持。顺便说一下,本书的重点在后面七章。
《冒号课堂》这本书之前借同事的来看,感觉很好,准备买一本,留着收藏查阅用,但是各大书店(包括京东)都没有货了,郑老师知道哪儿还可以买到?
顺便说一句,你的网站好像被墙了,好不容易翻墙过来的
当当有电子书( http://product.dangdang.com/1900091707.html ),但比较贵。淘宝有的店家卖的是正版,买之前最好确认一下。其他地方的确比较难找。此外,我的博客被墙好几年了。谢谢你的关注。
看完开班发言,决定买了。虽然我也贪便宜,就本书来说,电子版这价格是不贵的。不明白为什么很多电子版的价格是纸质版价格的尾数?同样有着精美的排版,电子版也有自身的优点,即使成本省一些,也不至于这么廉价吧,或许人们还没普遍接受电子版吧。
非常感谢你的支持。不过觉得电子版还是偏贵,买的人可能很少。
现在《冒号课堂》的kindle版在amazon上有售了: 链接 在此。刚得知多看上也有电子书了,链接是:http://www.duokan.com/book/83113。
在amazon买了kindle版本的,上篇已经看完,很有收获,感谢郑老师^_^
谢谢支持。
真是一本好书,读着读着就着迷了,如果能早两年读,该多好,相见恨晚…虽然技术发展很快,但是文中的一些思想依然很深刻,表达也非常到位。受益颇丰。第一遍先过一下,肯定有很多没理解到位,我觉得至少得读两三遍吧。期待能有新版上市!
备注:无意中看了篇博文 lisp的永恒之道最底下的参考链接,发现了这本《冒号课堂》,觉得很幸运。
Is there way to mathematicise the whole idea of programming presented in your book? I am thinking whether the homotopy type theory is related or a kind of calculus for finding the higher level of constancy for discrete change.
Thanks for sharing your idea. Some programming theories like type system, lambda calculus, monad can be described in mathematical language, but I don’t think the whole idea of my book could be easily mathematicized. After all, programming is not only about pure logic or mathematics, it is also about engineering.
What if we concentrate on the central theme of refactoring to pattern? To extract and separate the constant recurrence into an abstraction hierarchy. From the existence of pattern, we can deduce that the universe is a spacetime fractal which just subtly repeating itself spatiotemporally and it progresses as it repeats. By how much we would like to refactor or the degree of which depends on the engineering aspect as you mentioned is also itself a hierarchy. It all comes down to an abstraction hierarchy. In the book, your mentioned the data, type and polymorphic abstraction. How about the abstraction brings by meta-programming and the high level ones (meta-meta…)? How would you describe a complete abstraction hierarchy?