翻译:优秀的API应该能够预知未来的改变

本文出自overreacted,这是Dan Abramov写的博客,我觉得对很有用所以特意做了这个翻译系列,原文链接请查看这里

什么造就了一个好的API?

一个好的API设计应该是好记且不含糊的。它应该有良好的可读性,高准确的和高性能的代码,让开发者坠入成功的深渊

我把这些设计理念叫做"第一优先级",因为这些往往是一个库的开发者第一个需要注意的事情。针对这些原则,你可能会作出一些妥协和权衡,但是这些必须是要在你的脑子里考虑的。

除非你写的代码是给火星人用的,随着时间推移,你的代码总是会需要修改。那些使用你的API的开发者也是。

我所知道的最好的开发者们对"第一优先级"会有一种责任感。他们也会付出相同的精力在"第二优先级"的API设计原则: 使用这些API的代码之后会如何发展

一个轻微的改动有的时候会让你一个本来优雅的代码碎裂。

最好的 那些API会预测这些。他们会预测到你可能会移动你的代码,或者将你的代码复制到其他地方,或者重命名它,或者将一些统一的逻辑抽离到一个可以重用的工具中,或者讲一个统一的逻辑重新写会一个特殊的逻辑,或者添加一些hack,或者优化一个瓶颈,或者扔掉一些并开始一个新的代码,或者会写一些错误的代码,或者修复一个bug,或者查看一个修复的bug。

最好的 哪些API不只是让你坠入成功的深渊,他还会让你一直都在成功的深渊里。

他们会能够预知未来的改变。