API是用户界面

2020-11-25 14:39:07

API是程序员的用户界面,与图形用户界面,命令行用户界面或预期与用户一起使用的任何其他界面基本相同。每当您创建可公开调用的功能时,您都会在创建用户界面。程序员也是用户。

这听起来似乎很明显,但是以我的经验,这似乎经常被遗忘。世界上充斥着笨拙的API,用笨拙的英语记录下来证明了这一点。

每当我设计一个公共包,模块或类时,我都倾向于从编写一些基本的用法示例并将其记录下来。这份初稿并不完美,在编写实施方案时,我会不断更新示例和文档,以反复研究有效的方法和无效的方法。这有点像TDD,只是它“测试”了UX而不是实现。如果愿意,可将其称为“示例驱动开发”。

这类似于为GUI绘制基本的模拟UI,并且在构建UI的过程中避免了“哦,我们也需要做到这一点”,从而导致笨拙的UI元素添加了Willy-nilly。

在代码审查中,我通常会遇到的第一个问题是诸如“此API易于使用吗?”,“它是否一致?”,“我们可以在将来对其进行扩展以使其不难看吗?”,“是否已记录在案,有时我什至会尝试写一个简单的例子,看看是否有任何问题,是否“感觉”正确。只有解决了这一部分后,我才能继续审查实际实施的正确性。

我不会在这里列出具体示例或提示,因为口味和约定会有所不同。通常没有“正确的方法”。如果每个人都开始将API视为用户界面,而不是“哦,这只是给开发人员的,他们会把它弄清楚的”,那么我们将有90%的人在那里。顺便说一句,这也适用于命令行界面。