一、海勒姆法则
内容
当一个 API 有足够多的用户,你在契约中承诺了什么并不重要:系统中所有看得见的行为都会有某个人依赖……
案例
现在有两个系统A和B,B的一个接口返回一个列表。A系统的开发人员发现返回的列表都是按照ID正向排序的。本身A系统正好需要其按照正序排序,于是直接自己没有做排序就直接使用了。

实际B返回的列表是直接从数据库取出来的,自身没有做排序,并不知道自己的返回列表顺序被依赖了。有一天,B系统有个新需求,需要在返回列表数据前对数据先做个处理。因为B本身没有意识到自己提供了有序的列表,处理时就可能产生问题。
二、切斯特顿栅栏
内容
简单来说是:存在即合理。
在某种情况下存在某种制度或法律,为了简单起见,我们可以把它当做道路上竖立一道栅栏或大门。后来的改革者会欢欣鼓舞地说:“我没有看到这东西有什么用处,让我们把它清除掉吧。”
而更聪明的改革者则会说:“如果你没有看到它的用处,我当然不会让你们清除它。离远点动脑子想想。然后,当你可以回来告诉我你确实看到了它的用途时,我才可能让你毁掉它。”
做出重大决策的核心部分是理解先前决策背后的理由。如果我们不了解是如何形成当前状态,我们就有使事情变得更糟的风险。

文章探讨了API设计中的海勒姆法则,强调了系统间的依赖性和理解契约的重要性。切斯特顿栅栏概念提出谨慎对待既有规则,二阶思维强调深入分析问题。街灯效应指过度依赖已知方法,虚荣指标揭示了数据背后的价值。墨菲定律和其衍生法则揭示了项目管理中的风险。康威定律和格雷欣法则涉及组织设计与业务影响。最后,泰斯勒定律阐述了复杂度守恒定律在产品设计中的应用。
4万+

被折叠的 条评论
为什么被折叠?



