是什么让软件开发成为工程
这篇文章从“软件工程”一词的历史出发,讨论了什么让软件开发成为工程。作者回顾了 1968 年 NATO 软件工程和 ALGOL 68 之争,指出软件工程并非天然等同工程,而是通过系统性、可量化、迭代的决策流程(估算—比较—实现—测量—反馈)才具备工程属性。 文中用一个电商页面加载慢的 Redis 缓存优化案例展示工程方法:从测量 FCP、定位数据库瓶颈,到估算缓存命中率、验证结果偏差并迭代优化。 作者还引入 Peter Naur 的“心智理论”、bricoleur 和软件园艺等视角,认为组织需要工程方法拉平个体差异,保证一致质量。最后回应 AI 是否会终结软件工程的争论,认为在可预见的未来,人类工程师仍需提供上下文、验证 AI 输出,并建议读者警惕“AI 自动写代码、人类不再负责”的自我实现预言。

