Git Archaeology #11 — 熵:宇宙总是趋向于混乱
Source: Dev.to
请提供您希望翻译的完整文本内容(除代码块和 URL 之外),我将按照要求把它翻译成简体中文并保留原有的格式。
热力学第二定律
物理学中有一个概念叫熵——简而言之,放任不管的有序总会崩溃。
在一杯水里滴入一滴墨水。墨水会扩散并均匀混合,且这种逆过程永远不会发生。这就是熵的增加。宇宙总是趋向于无序,维持有序需要能量。
Source:
代码库中的熵
代码,就像物理世界一样,存在熵。若不加以维护,代码总会腐烂。
- 起初,设计很美好:层次分明,职责划分清晰,命名规范统一。
- 六个月后:
- “很紧急”——一个捷径直接穿透了层次。
- “只在这一个地方”——一个方法忽视了命名规范。
- “现在能用”——代码在没有测试的情况下被写入。
每一次改动都很小,但累计起来就会瓦解结构。编写新代码会增加熵:代码越多,复杂度越高,依赖越多,需要理解的内容也越多。仅仅是生产,就会把整个宇宙推向混沌。
抵抗熵
抵抗熵的行为包括:
- 编写测试。
- 提出审查评论。
- 修复错误。
拥有高 Quality 分数的工程师是秩序的守护者。能够长期存活的代码证明它经受住了熵的压力。Survival 分数为 100 表明“这段代码在六个月内没有被无序侵蚀”。
设计作为熵的屏障
良好的设计限制了变更的影响范围。模块边界充当阻止熵传播的墙壁。拥有高 Design 分数的架构师构建这些屏障。具备广泛 Breadth 的工程师能够感知“这一区域开始腐烂”,并在代码库中提前发现熵。
软件开发的本质是一场与熵的斗争:
- 每一个新特性都会增加熵。
- 重构会降低熵。
- 测试是检测熵增加的传感器。
观察团队分数的趋势可以揭示这场斗争的结果:
| 趋势 | 解读 |
|---|---|
| Quality 分数下降 | 熵占上风 |
| Survival 分数下降 | 过去的秩序正在崩塌 |
| Design 分数上升 | 屏障正在加固 |
重构与“暗物质”
格言“不要动已工作的代码”与物理学相冲突:如果不干预,随着周围代码的变化,秩序会退化。局部重构可以降低熵。像“暗物质”一样的小重构在提交日志中不显眼,却能阻止宇宙的坍缩。
残酷的真相
熵的增加是不可避免的。无论设计多么精美,团队多么优秀,熵都会随时间不可避免地增加。完美的秩序——以及完美的代码库——并不存在。存在的,是对抗熵的意志。一个优秀的工程团队可以减缓熵增加的速度,而 EIS 会告诉你在这场战斗中的位置。
相关章节
- 仅凭 Git 历史衡量工程影响
- 超越个人分数:从 Git 历史衡量团队健康
- 通往架构师的两条道路:工程师的不同进化路径
- 后端架构师的汇聚:安置灵魂的神圣工作
- 时间线:分数不说谎,也捕捉犹豫
- 团队进化:时间线揭示的组织法则
- 观察代码宇宙
- 工程相对论:为何同一工程师得到不同分数
- 起源:代码宇宙的大爆炸
- 暗物质:看不见的引力
- 熵:宇宙总是趋向无序(本篇)
- 崩塌:优秀架构师与黑洞工程师
- 代码宇宙学
Tools
GitHub: engineering-impact-score – CLI 工具、公式和方法论均为开源。
brew tap machuz/tap && brew install eis
如果这对您有帮助,请考虑阅读其他章节以获取更深入的见解。