Skip to content

Latest commit

 

History

History
25 lines (13 loc) · 2.64 KB

File metadata and controls

25 lines (13 loc) · 2.64 KB

40 years later, are Bentley's "Programming Pearls" still relevant?

TL;DR

《编程珠玑》发表40年,90%格言因触及编程本质(如设计优先、调试原则)仍高度适用,仅少数技术细节过时。核心揭示人性与工程真理永恒,强调务实、简洁和权衡,价值不减。

Summary

Jon Bentley于1985年发表的《编程珠玑》距今已40年,文章评估其内容在现代编程领域的相关性。总体而言,绝大多数格言因触及编程本质而依然高度适用,仅少数技术细节因硬件和工具进步而过时。

在编码方面,"当不确定时使用暴力解决"强调务实解题思路;"细节决定成败"和"若代码与注释矛盾则两者皆错"揭示了开发中永恒痛点;"尽早编码反而耗时更长"印证了设计优先的重要性;"避免特殊案例堆积"指出过度分支的代码隐患,但需承认现实复杂性。

用户界面领域,"最小惊讶原则"批评了当下混乱的UI设计;"系统已知信息勿重复索取"虽被质疑验证需求,但核心思想仍成立;"输入表单20%含错误数据"因现代验证技术稍显过时,但人性缺陷导致的错误仍普遍存在。

调试环节中,"测试仅能证伪不能证实"因模糊测试工具有所弱化,但根本逻辑不变;"解决故障首需复现问题"直指间歇性错误的顽固性;"现场修复bug成本是开发阶段的十倍"被崩溃日志技术部分缓解,但修复成本曲线依然陡峭。

性能优化方面,"不要优化"和"专家级第二规则:暂不优化"仍是黄金准则;"优化前先用性能分析器"基本正确,但经验积累可辅助预判;"I/O最快方式是无I/O"从磁盘时代延续至网络延迟场景,核心思想未变。部分低层优化技巧(如结构体内存对齐)因硬件进步已不必要。

文档与管理领域,"解释功能前先说明解决的问题"凸显文档价值;"系统结构反映组织结构"(康威定律)持续影响架构设计;"前90%代码耗90%时间,剩余10%耗另90%时间"揭示开发悖论,敏捷方法仅部分缓解;"原型开发可减少40%工作量"被质疑,因原型本身是必要过程。

文章指出,虽具体技术环境变化(如磁盘I/O转为网络延迟),但编程中的人性因素、认知局限和工程权衡本质未变。作者肯定约90%格言的核心价值,仅对少数表述提出微小商榷,最终强调这些"珍珠"之所以永恒,正因它们揭示了软件开发中与人类条件不可分割的真理。