Martin Fowler
Bliki: Paracelsus Maxim
8.5内容质量
TL;DR · AI 摘要
编程中的全局数据使用需遵循‘剂量决定毒性’原则,适量使用可提升效率,过量则引发问题。
核心要点
- 全局数据适量使用可提高程序效率,但过量会导致维护困难
- Martin Fowler引用Paracelsus名言强调上下文对技术决策的影响
- 编程实践中应通过剂量控制平衡全局数据的便利性与风险
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- Paracelsus Maxim在编程中的应用
- 医学背景
- 剂量决定毒性
- 编程实践
- 全局数据管理
- 上下文依赖
- 设计原则
- 适度原则
- 风险控制
金句 / Highlights
值得收藏与分享的关键句。
All things are poison, and nothing is without poison; the dosage alone makes it so a thing is not a poison.
A little global data, especially when immutable, can be a handy way of propagating information
When thinking about when things are good or bad, we should always ask 'in what contexts' and 'in what doses'
#编程原则#全局数据#Martin Fowler#软件设计
打开原文帕拉塞尔苏斯定律
2026年9月2日
词典
药物与毒药的区别在于剂量。
我们经常讨论编程或生活中某些习惯是好是坏。但很少有事情是简单的二元对立。有些事情会随着情境变化:在我花园里读书是件好事,但开车时读书就不是。另一个变量是剂量:少量止痛药能缓解我的头痛,但过量会置我于死地。
16世纪瑞士医生帕拉塞尔苏斯注意到了剂量的重要性。他的原话是德语“Alle Dinge sind Gift, und nichts ist ohne Gift; allein die Dosis macht, dass ein Ding kein Gift ist.”(根据维基百科)翻译为“万物皆有毒,无物无毒;唯剂量决定其是否为毒。”也被称为“剂量决定毒性”或拉丁语“dosis sola facit venenum”。
在编程中,全局数据是帕拉塞尔苏斯定律(我这样称呼它)的典型例子。少量全局数据,尤其是不可变数据,可以作为一种便捷的方式,在程序各处传播可能需要的信息。但一旦数量过多,就会迅速变得危险。
这类问题在许多地方都会出现。因此,当我们思考某事物是好是坏时,应当始终问自己:“在什么情境下”以及“以何种剂量”?