编写技术文档,是令众多开发者望而生畏的任务之一。它本身是一件费时费力才能做好的工作。可是大多数时候,人们却总是想抄抄捷径,这样做的结果往往非常令人遗憾的,因为优质的技术文档是决定你的项目是否引人关注的重要因素。无论开源产品或面向开发者的产品,均是如此。
实际上,我想说明的是:对于面向开发者的产品来说,其用户体验中最重要的一环并不是什么主页设计、登录过程、或者SDK下载。真正最重要的是产品的API文档!如果没人知道你的产品如何使用,纵使它巧夺天工,又有何用?
如果你是一个专门从事面向开发者产品设计的工程师,那么编写完善的技术文档,就跟你为终端用户提供良好用户体验一样关键。(API 设计是很聪明的投资,你得到的回报是忠实的开发人员。详见:《为什么“开发人员友好性”是API设计的核心》。)
我见过许多类似的情况,一个项目被草率地扔到GitHub的页面上,仅仅配有两行的readme说明文件。要知道,真正成功的API文档是需要用爱来悉心制作的艺术品。在Parse产品项目里,我们就把自己奉献给了这门艺术!
那么,什么才是制作优秀API文档的关键因素呢?
0. 绝不吝惜使用层次
你的设计文档不应当仅仅直白地列出所有的终端函数和其参数。好的文档应该是一整套有机的系统内容,能指引用户通过文档与API进行交互。退一万步说,你至少让你的文档包含以下几个部分。
参考索引:参考索引应当是一个事无巨细的列表,包含了所有功能函数的繁文缛节。它必须注明所有的数据类型和函数规格。高级开发者要能够拿着它整天当参考书使用。
开发指南:这是介于参考索引和开发教程中间程度的文档。它就仿佛是一篇更加详细的参考索引,阐明了如何使用各种API。
开发教程:开发教程会更加具体地阐述如何使用API,并着重介绍其中的一部分功能。如果能提供可编译运行的源代码,那就再好不过了。
在Parse项目里,我们做到了上述所有三个部分。目前我们正在努力编制更多的开发教程。
另外一个此方面优秀的范例是Stripe’s API(http://www.stripe.com) 。这个产品的文档包括一个很棒的《hybrid guide and reference》,以及一套开发教程。《GitHub API参考》也经过了良好的设计。
1. 不要在例子中包含抽象概念
你可以争辩说,我的API本身就是个抽象体, 抽象就是它的特点。然而,当你在教会开发者如何使用的过程中,还是能不抽象就不抽象比较好。
在你的文档中尽可能地举现实中的例子吧。没有哪个开发者会抱怨你举例太多的。实际上,这种做法能显著地缩短开发者理解你产品的时间。对此,我们的网站里甚至给出一个代码样例加以解释。
3. 减少点击次数
开发者痛恨点击鼠标,这已经不是什么秘密了。千万别把你的文档分散在数以万计的页面当中。尽量把相关的主题都放到一个页面里。
我们非常赞成使用“单页面大指南”的组织形式(链接),这种形式不仅能让用户纵览全局,仅仅通过一个导航栏就能进入他们感兴趣的任意主题,另外还有一个好处是:用户在进行搜索的时候,仅仅搜索当前页面,就能涵盖查找所有的内容。
在这个方面的一个优秀范例是ckbone.js documentation,只要你有个鼠标,一切尽在掌握。
4. 包含适当的快速指南
万事开头难,开发者/程序员学习一套全新的API,不得不重新适应其全新的思维方式,学习代价高昂。对于这个问题的解决办法是:通过快速指南来引导开发者。
快速指南的目的是让用户用最小的代价学习如何利用你提供的API干一些小事。仅此而已。一旦用户完成了快速指南,他们就对自己有了信心,并能向更加深入的主题迈进。
举个例子,我们的快速指南能让用户下载SDK以及在平台上存储一个对象。为此,我们甚至做了一个按钮,来让用户测试他们是否正确地完成了快速指南。这能提升用户的信心,以鼓励他们学习我们产品其他的部分。
5. 支持多种编程语言
我们生活在一个多语言的世界。如果可能的话,为你的API提供各种编程语言版本的样例程序,只要的API支持这些语言。多数时候,多语言的工作都是由客户端库来完成的。要知道,开发者要想掌握一套API,离开他们熟悉的编程语言,是很难想象的。
MailGun’s API为此做出了良好的榜样。它提供了curl,Ruby,Python,Java,C#和PHP等多个版本供开发者选择。
6. 绝不放过任何边界情况
使用API开发应用,所能遭遇的最糟糕的情况,莫过于你发现了一个文档中没有提到的错误。如果你遇到这种情况,就意味着你不能确认究竟是你的程序出了错,还是你对API的理解出了错。
因此,参考索引中必须包含每种假设可能造成的边界情况,不论是显示的还是隐式的。花点儿时间在这个上面,绝对能起到事半功倍的效果。
7. 提供样例应用
在学习结束的时候,开发者希望能看到关于项目产品应用的大致蓝图。达到这一目的最好的办法,莫过于提供可运行的样例应用。我发现,应用程序代码是将API运行机理和系统整合融会贯通最好的办法。
sample code in Apple’s iOS Developer Library 则是这方面做得很好的,它包含了详尽的iOS样例程序,并按主题一一分类。
8. 加入人性化的因素
阅读技术文档枯燥乏味,自然不像坐过山车那样紧张刺激。不过,你至少可以通过加入一些人性化的因素,或者开开玩笑。给你的例子中的变量其一些好玩儿的名字吧,别老是把函数名称叫什么foo之类的,好让你的读者有焕然一新的感觉。
至少,这可以保证你的读者不会读着读着就睡过去。
结论:
若要想深入人心,一个良好的设计文档必不可少。然而,设计一个好文档是需要大量投入才能形成的。但是,这些投入是值得的,因为它的意义和产品本身同等重要。
编写良好文档的另一半诀窍,是要从产品开发的初始阶段就朝着这个方向努力。不过,这就不是本文讨论的范畴了。
相关推荐
这是 Java 8 最新更新的官方 API 参考文档,涵盖了所有公共类和接口的详细描述。无论你是新手还是经验丰富的开发者,这份...开发者可以通过查阅这些文档了解每个类、方法、字段等的功能、参数,帮助高效编写优质代码。
JDK API文档是Java开发者不可或缺的参考资料,它详细列出了Java开发工具包(Java Development Kit)中包含的所有类、接口、方法以及构造函数的详细信息。这份CHM(Compiled HTML Help)格式的文档专为JAVA开发技术...
**jQuery 1.2 API 参考文档** jQuery是一个轻量级的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画制作以及Ajax交互。...通过深入学习并熟练应用这些API,可以提高开发效率,创造出更优质的Web应用程序。
- **官方文档**:Microsoft官方网站提供了详细的Win32 API文档。 - **在线教程**:互联网上有许多优质的Win32 API教程和示例代码。 - **实践项目**:尝试自己编写一些小型项目来练习使用Win32 API。 - **社区论坛**...
**Java Development Kit (JDK) 1.8 中文版** JDK 1.8,也被称为 JDK 8,是 Java 平台标准版(Java SE)的一个重要...利用JDK 1.8 API 中文版,开发者能够更好地理解和利用这些新特性,编写出高效、简洁的Java代码。
5. **完善的API和示例**:离线文档中详尽的API文档和示例代码,使得开发者能快速上手,减少学习曲线。 6. **国际化支持**:内置多语言支持,方便开发者实现项目的全球化。 7. **与Vue.js深度集成**:充分利用Vue的...
纯JavaScript编写,使用Ajax数据传输技术; 包含一整套交互和数据展现组件的Web-UI解决方案; 基于portotype的结构设计,便于进行二次开发和扩展; 接口丰富,使用简单,易于创建风格统一、功能全面的富客户端应用;...
- Swagger是一款流行的API文档化工具,支持JSON和OpenAPI规格,能自动生成API文档,便于测试和集成。 - Swagger UI允许用户通过浏览器交互式地查看和测试API。 3. **API Documentation**: - API文档的创建应...
例如,通过API可以访问文档内容、执行编辑操作,甚至控制用户界面。 4. **插件注册**:开发完成后,需要将插件正确注册到永中Office中,以便用户可以正常使用。注册过程通常包括配置插件元数据、指定入口点等步骤。...
- API设计应鼓励编写可读性强的代码,因为代码的维护和修改通常比初次编写更为频繁。易于阅读的代码能节省长期的开发成本。 6. **避免陷阱**: - **便利陷阱**:有时为了方便,API可能提供过于便捷的方法,但可能...
逆向工程API通常是指开发者通过分析接口调用、请求响应等方式,理解其内部逻辑,以便在没有官方文档的情况下使用或模仿API的功能。在这个项目中,开发者可能通过发送不同的请求参数,研究suno-ai如何生成音乐,并...
API文档应详尽无遗,包括API的用途、功能、参数解释、返回值说明、使用示例和错误处理机制。文档应该清晰易懂,可以使用Markdown或其他格式增强可读性,提供多样的示例代码以展示API的不同应用场景。 4. **错误...
【标题】"bMap百度地图API地址输入插件"是一个基于百度地图API开发的插件,主要用于提升用户在网页中输入地址的体验...通过理解和应用这个插件,开发者可以提升网站或应用的地理信息处理能力,为用户提供更优质的服务。
综上所述,jQuery EasyUI 1.4 版 API 中文版为开发者提供了全面的文档支持,帮助他们高效地构建具有专业外观和丰富功能的 Web 应用。通过深入理解和熟练运用这个框架,开发者可以大大提高开发效率并创造出优质的用户...
- **文档化**:编写详细的文档,包括代码注释、API文档等,以便于他人理解和维护代码。 #### 六、结论 《Microsoft 编写优质无错C程序秘诀》是一本宝贵的资源,不仅适合于初学者学习基础的编程技能,也适用于经验...
然后,根据API文档设置属性和事件,如`data-role="right"`定义导航栏右部内容。 4. **事件处理**:使用Mui的事件绑定机制,如`mui(".mui-slider").on('slide', function(){...})`监听滑块事件并执行相应操作。 5. ...
一份优质的说明文档应清晰、全面且易于理解,内容包括: - **用户指南**:向最终用户介绍软件的使用方法,包括安装步骤、功能操作和常见问题解答。 - **开发者文档**:供内部团队使用的文档,如API参考、代码风格...
书中会介绍自动化测试工具和方法,以及如何编写清晰、全面的API文档,以便开发者参考。 7. **性能优化**:高性能API可以提升用户体验。书中的内容会涵盖如何通过缓存、负载均衡和数据压缩等手段来优化API的性能。 ...
- **stylesheet.css**: CSS样式表,用于定义网页版API文档的样式和布局。 - **overview-tree.html**: 类结构树,展示QtJambi API的类和模块组织结构。 - **index-all.html**: 全部索引,列出API文档中的所有类、...