日历

October 2017
M T W T F S S
« Jul    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

答读者问(3)——再谈抽象

回答上位读者的进一步提问 […]

答读者问(2)——关于抽象

答一位读者关于抽象的提问 […]

答读者问(1)——对程序员的一些个人建议

答一位《冒号课堂》读者的提问 […]

《冒号课堂》在台湾上市

公告:《冒号课堂》今起在台湾上市 […]

《冒号论坛》开放

公告:本博新开《冒号论坛》,欢迎赏光! […]

《冒号课堂》意见收集

征求对《冒号课堂》一书的问题、意见和建议 […]

《冒号课堂》上市

公告:《冒号课堂》已正式上市 […]

冒号课堂§10.2:抽象类型

抽象类型——实中之虚(介绍抽象类型的种类、意义及其用法
• 浅显的比方只是门槛前的台阶,借之或可拾级入门,却无法登堂入室
• 具体类型是创建对象的模板,抽象类型是创建类型的模块
• 抽象数据类型的核心是数据抽象,而抽象类型的核心是多态抽象
• 必先以术养道,而后以道御术
• 以社会身份而非个人身份作为公民之间联系的纽带,正是针对接口而非实现来编程的社会现实版
• 个体身份对应的规范抽象借助封装,以数据抽象的形式出现
• 家庭身份对应的规范抽象借助继承,以类型层级的形式出现
• 社会身份对应的规范抽象借助多态,以多态抽象的形式出现 […]

冒号课堂§10.1:多态类型

多态类型——静中之动(通过实例展示多态类型的三种用法
• 继承是多态的基础,多态是继承的目的
• 多态是动静结合的产物,将静态类型的安全性和动态类型的灵活性融为一体
• 前者(参数多态)是发散式的,让相同的实现代码应用于不同的场合
• 后者(包含多态)是收敛式的,让不同的实现代码应用于相同的场合
• 模板方法模式突出的是稳定坚固的骨架,策略模式突出的是灵活多变的手腕 […]

《冒号课堂》自序

《冒号课堂》一书的序言 […]

冒号课堂§6.4:后台脚本

后台脚本——敏捷开发的利器(简谈Perl、PHP、Python和Ruby
• 语言的发展趋势一定是动静结合、刚柔并济
• Perl凝练晦涩,Python优雅明晰,Ruby精巧灵动,PHP简明单纯
• 或许优雅正是来自对细节和规范的重视
• (RoR)与Ruby结合之后,便如一只猱身而上灵猫,立刻衬托出Java和.NET大象般的身影 […]

冒号课堂§6.3:前台语言

前台语言——视觉与交互的艺术(简谈VB、Delphi和JavaScript
• Delphi让复杂的事情变得简单,VB让简单的事情变得更简单
• 它(JavaScript)宛如一只神奇的魔袋,乍看平淡无奇,却总能变出意想不到的宝贝
• 待友之道,贵在放大其优点而缩小其缺点,对待语言亦当如是
• 大道相通,难者亦易,易者亦难
• 得道者化腐朽为神奇,离道者化神奇为腐朽 […]

冒号课堂§6.2:平台语言

平台语言——先搭台后唱戏(简谈Java和C#
• Java的目的是让一种语言在多种平台上运行,而C#(.NET)的目的是让多种语言在一种平台上运行
• 两个平台语言(Java和C#),一个重在语言,让语言向平台扩散;一个重在平台,让平台来凝聚语言
• C++提供了一马平川的大路,也提供了陷阱密布的小道;Java则在大路上铺设水泥,同时封锁了捷径小道;C#同样填平了大路上的坑坑洼洼,但把一些小道上“此路不通”的牌子悄悄换成了“此路危险” […]

冒号课堂§6.1:系统语言

系统语言——权力的双刃剑(简谈C、C++和D
• 通禅悟道者拈花不语,坐井观天者蛙鸣鼓噪
• Java程序员大多被惯坏了,环保意识要淡薄得多
• (指针)用得好可以是削铁如泥的神兵利器,用得不好则可能是自我毁灭的罪恶渊薮
• OOP又不是金子,含量越高越好。试图把一切都装进OOP的箱子里的想法无异于削足适履
• 它们(系统语言)的理念是:优化机器的时间而不是人的时间,优化机器的记忆而不是人的记忆;假设编译器是愚蠢的而程序员是聪明的,因此赋予程序员更多的权利、义务与责任
• C++是匹无辔无鞍的野马,看似桀骜不驯,若能顺性而御,必能足踏飞燕,行千里而不劳 […]

冒号课堂§5.4:语言误区

语言误区——语言的宗教情结(关于编程语言认识上的一些误区
• 如果说编程范式是一种文化,那么编程语言更像是一种宗教——尽管它本不该是
• 语言只有两种:一种怨声载道,一种无人问津
• 对待一门语言的态度应该是:与其抱怨争执,不如扬长避短
• 过分拔高一种语言与抹煞语言之间的差别是两种极端,皆为秕言谬说
• 这些人若有幸拜关公为师,他们最艳羡的一定他的赤兔马和青龙偃月刀,或许还会抹红脸蓄长须什么的,就是不太愿学他的盖世武功
• 理想的架构师应当如文学大师,既有恢弘大气的构思,又有细腻深刻的笔法;应当如统军大帅,既有运筹帷幄的韬略,又有冲锋陷阵的武功 […]

冒号课堂§5.3:动态语言

动态语言——披着彩衣飞舞的脚本语言(动态语言简谈
• 程序是为终端用户服务的,而脚本是为程序员服务的
• 动态语言秉承的一个理念是:优化人的时间而不是机器的时间
• 待静态语言披盔戴甲、备马抬枪之际,动态语言已衣袂飘飘,长剑出手了
• 当脚本语言披上动态语言的彩衣,昔日不起眼的毛毛虫便羽化成碟,开始飘舞在众人追逐的目光之中 […]

冒号课堂§5.2:数据类型

数据类型——规则与变通(关于数据类型的讨论
• Duck类型的哲学是:名义不重要,重要的是能力
• 将一个会叫会游的家伙放进池塘看起来不算坏主意,但如果一艘轮船趁机也轰隆隆地开了进来,事情恐怕就不那么美妙了
• 静态类型检查类似“疑罪从有”的有罪推定制,动态类型检查类似“疑罪从无”的无罪推定制
• 尽可能守规则,必要时求变通
• 规则如裤带,过于宽松和过于束缚都不好 […]

冒号课堂§5.1:教学计划

教学计划——接下来的故事(讨论下一步教学计划
• 编程水平的提升之道是:在实战中演练招法,在招法中领会心法,心法反过来提升招法,进而提高实战水平,如此循环往复呈螺旋式上升过程。正所谓熟能生巧,巧能生通
• 迭代学习法:即在具体知识与抽象理论之间进行折返式学习
• 网页的迷人之处就在于,能够用精美的画皮来包裹冗长低效的代码
• 无论干哪一行,要想胜任愉快,离不开四样东西:才能、兴趣、方法和努力 […]

冒号课堂§4.4:情景范式

情景范式——餐馆里的编程范式(编程范式在餐馆中的应用
• 厨师只需提供一种服务:把纸上菜变成盘中菜,至于蒸、煮、炒、炖等具体做法纯属实现细节
• 可以这么理解(闭包):所谓包,指函数与其周围的环境变量捆绑打包;所谓闭,指这些变量是封闭的,只能为该函数所专用
• 合理地使用闭包能使代码更加简洁清晰,散发出函数式特有的优雅气质
• 换盘子有两种方式:一种是服务员主动换,一种是客人要求换。前者是轮询,后者是通知
• 如果把待加工的菜看作数据,技法看作算法,将数据与算法分离,以算法为中心,那是什么范式? […]

冒号课堂§4.3:汇总范式

汇总范式——一张五味俱全的大烙饼(总结编程范式
• 设计模式好比组合套路,能在一些特定场合下克敌制胜;编程范式则好比武功门派,博大精深且自成体系
• 一种编程范式之所以能独树一帜,关键在于它突破了原有的编程方式的某些限制,带来革命性的新思维和新方法,进一步解放了程序员的劳动力
• 因其长而容己,因其短而容他,此万物之理也
• 语言为形,范式为神。若能以神导形、以形传神,则看似平白无趣的程序也能写出诗画般的意境 […]

第1 / 2页12