返回 内核恐慌在 内核恐慌 中提及的产品。
20. 设计模式
2015年6月27日 · 2:11:50
本期《内核恐慌》中,主持人吴涛和Rio首先解释了节目下载串台故障的成因:国内运营商(如长城宽带)的透明缓存系统仅以域名和文件名作为缓存标识,忽略路径,导致不同节目的同名文件被混用。随后吴涛透露,受Apple Watch SDK限制,其用莫尔斯码发送信息的手表应用设想难以实现,因为无法检测按键长短。节目还念读了三封长篇读者来信:第一封讨论TDD与重构的价值,第二封由形式化验证(Formal Verification)专业博士生撰写,对比了测试与形式化验证的优劣,并介绍了sel4和CompCert等项目;第三封来自一位TDD践行者,强调重构在TDD中的关键作用。主题部分,两人回顾了设计模式的起源(源自建筑学《建筑的永恒之道》),阐述了其核心原则“面向接口编程”和“组合优于继承”,并指出许多模式是语言局限的补偿(如C#的delegate/event代替Observer模式)。最后讨论了反模式(God Object、Golden Hammer、Silver Bullet),并引用了GoF作者15年后的反思访谈。
14. 类型系统
2015年4月4日 · 2:27:37
本期《内核恐慌》深入探讨编程语言中的类型系统,吴涛和Rio解释了它的核心作用:在计算机纯数字世界与人类思维之间建立映射,帮助程序员组织数据并避免错误。但他们也通过千年虫、2038问题和IEEE 754浮点数精度缺陷等具体案例,展示了类型系统引入的常见陷阱。节目区分了强类型与弱类型(如Haskell的严格 vs JavaScript的自动转换)、静态与动态类型(如C++的编译期剥离类型信息 vs Python的运行时类型推断),并讨论了用户自定义类型与系统原生类型的区别。他们还批评了JavaScript因弱类型导致的诡异行为,并比较了不同语言在类型转换上的设计哲学(如Perl使用点号拼接字符串以避免歧义)。最后,他们指出类型系统的选择深刻影响编程思维,并建议教育应从实用出发而非先灌输底层细节。