API: 好的方法、类和成员命名使 API 能够阐明自身的意义。但无论 API 多好,没有好的文档就无法被使用。这就是每个 public 的元素——方法,类,域,参数——应当用文档说明的原因。对于你,一个 API 开发者来说简单易见的东西,也许对于你的 API 用户来说就不那么容易和显然了。
示例代码应该是模范代码
API: 示例代码有若干用途:他们帮助用户理解 API 的目的,用途,以及上下文。代码片段 用于解释如何使用基本的 API 功能。 教程 教用户关于 API 特定层面的知识。代码示例 是更加复杂的例子,通常是一整个应用。这三者之中,缺少代码示例会引起最严重的问题,因为开发者看不到整体图景——你所有的方法和类是如何协作的,以及它们是如何与系统协作的。
如果你的 API 流行起来了,有可能会有数以千计的开发者使用这些例子。他们将会成为如何使用你的 API 的例子。因此,你犯的每个错误都会让你自食其果。
这些年,我们学习了很多关于 UI 可用性的知识;我们知道用户们需要什么,以及他们在想什么。他们需要符合直觉、高效、正确的 UI,并且要能帮助他们用合适的方式完成特定任务。这些概念都不止于 UI,还适用于 API,因为开发者也是用户。所以,让我们通过可用的 API 帮助他们(也是帮助我们自己)吧。
Myers, B. A., & Stylos, J. (2016). Improving API usability. Communications of the ACM, 59(6), 62–69. PDF
Bloch, J. (2006). How to design a good API and why it matters. Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications. ACM. PDF
Ellis, B., Stylos, J., & Myers, B. (2007). The factory pattern in API design: A usability evaluation. Proceedings of the 29th international conference on Software Engineering. IEEE Computer Society. PDF
Robillard, M. P. (2009). What makes APIs hard to learn? Answers from developers. Software, IEEE, 26(6), 27–34. PDF
Scheller, T., & Kühn, E. (2015). Automated measurement of API usability: The API Concepts Framework. Information and Software Technology, 61, 145–162. PDF