【译文】冷血软件
那是 2004 年,我正坐在大学里最大的一个阶梯教室里。我主修计算机科学,但我正在选修一门关于自然历史–植物和动物–的课程。
教授告诉我们,他从家里带来了一些东西,是他在冰箱里发现的。他把手伸到桌子后面,然后伸出手臂,让我们看他掌心里的东西:一只小彩龟。我们正在学习冷血动物的知识,原来彩龟幼体非常特别–它们是仅有的几种能在冷冻中存活下来的物种之一。
2004年的阶梯教室非常现代化:讲台上有一个高空摄像头,教授可以在上面写笔记,然后显示在大厅四周的屏幕上。但他并没有写笔记,而是把乌龟放在摄像头下面,开始讲课。
在接下来的一个小时里,我们看到这只小爬行动物随着教授的讲课慢慢活了起来。最初的动作几乎难以察觉。眼睑裂开,一条腿向前迈进。讲课结束时,乌龟已经在我们的屏幕上移动了大约一半的距离。
我永远不会忘记那堂课,因为在那堂课上,我真正理解了冷血动物的含义。你看,温血动物–比如人类或老鼠–的体温比较稳定,保持在一个相当狭窄的范围内。对于人类来说,大约是 37 摄氏度。高出或低出几度,我们就会有大麻烦。像彩龟这样的冷血动物可以根据周围的温度调整新陈代谢。当室外温度较高时,它们很活跃,而当环境(和它们的身体)温度较低时,它们的行动就会变得缓慢。它们中很少有人能像小彩龟那样在冰冻中存活下来。
我在软件项目中也看到了类似的两极分化。某些技术决策会导致项目成为 “温血动物”:当项目不断运动并产生热量时,一切都很好。但如果把热血沸腾的软件放进冷冻库,六个月后就会拉出一具尸体。
也许你的 CI 无法工作是因为你所依赖的服务之一被收购或资金耗尽了。你添加了一个新的依赖项,却发现自己需要升级编译器。你依赖的另一个软件包已经过时,无法使用最新版本的编译器。
有些项目则不同。你独自工作,有了灵感就做些改变,然后一年、两年、三年都不再碰它。你不能把这样的项目当作热血项目来运作。没有足够的活动来保持温度。
冷血项目就像小彩龟。你可以把它冷冻一年,然后从你离开的地方把它接回来。
冷血项目使用的是乏味的技术。构建和测试脚本不依赖于可能发生变化、中断或完全消失的外部服务。它使用的是有偿依赖。
为本博客提供动力的软件就是冷血项目。第一次提交是在将近十二年前–一个简单的小静态网站生成器,用来替换我安装的过时的 WordPress:
commit 68949229ad426c1e8795ee640808db9987ab30ab
Author: Patrick Dubroy <pdubroy@gmail.com>
Date: Sun Jan 8 19:10:24 2012 +0100
Add templates and site-building script.
它是用 Python(2,而不是 3)编写的。它依赖于四个第三方模块,这些模块都已提交到项目库中。一切都在本地运行,我通过 rsync 在 ssh 上部署结果。
我很高兴决定这样做。这些年来,我做了一些小的改进,但除此之外,它一直在运行,没有修改过。我完全相信,再过十二年,它还能继续工作。
🐢
本文文字及图片出自 Cold-blooded software
你也许感兴趣的:
- 几种华丽无比的开发方式
- 具有魔法的 H.264
- 多用户环境中的 rootless Docker
- 【外评】微软的人工智能聊天机器人将 “回忆 “您在其新 PC 上所做的一切
- 【外评】苹果需要解释重新出现已删除照片的错误
- 你需要知道的现代 CSS 技巧(2024 年春季版)
- 使用 :has() 作为 CSS 父选择器及其他更多内容
- 【外评】大科技公司致欧盟:“去死”
- npm又被滥用,灰产用《庆余年2》盗版资源——把开源公共基础设施的羊毛薅秃了
- 【外评】如果您没有在 Edge 中使用必应,微软现在会说您的电脑需要 “修复”
你对本文的反应是: