只做男生穿搭的网站,wordpress自定义分页,数字媒体技术移动互联网开发,使用 私有云 做视频网站编写技术文档#xff0c;是令众多开发者望而生畏的任务之一。它本身是一件费时费力才能做好的工作。可是大多数时候#xff0c;人们却总是想抄抄捷径#xff0c;这样做的结果往往非常令人遗憾的#xff0c;因为优质的技术文档是决定你的项目是否引人关注的重要因素。无论开…编写技术文档是令众多开发者望而生畏的任务之一。它本身是一件费时费力才能做好的工作。可是大多数时候人们却总是想抄抄捷径这样做的结果往往非常令人遗憾的因为优质的技术文档是决定你的项目是否引人关注的重要因素。无论开源产品或面向开发者的产品均是如此。
实际上我想说明的是对于面向开发者的产品来说其用户体验中最重要的一环并不是什么主页设计、登录过程、或者SDK下载。真正最重要的是产品的API文档如果没人知道你的产品如何使用纵使它巧夺天工又有何用
如果你是一个专门从事面向开发者产品设计的工程师那么编写完善的技术文档就跟你为终端用户提供良好用户体验一样关键。
我见过许多类似的情况一个项目被草率地扔到GitHub的页面上仅仅配有两行的readme说明文件。要知道真正成功的API文档是需要用爱来悉心制作的艺术品。在Parse产品项目里我们就把自己奉献给了这门艺术
那么什么才是制作优秀API文档的关键因素呢
1. 绝不吝惜使用层次
你的设计文档不应当仅仅直白地列出所有的终端函数和其参数。好的文档应该是一整套有机的系统内容能指引用户通过文档与API进行交互。退一万步说你至少让你的文档包含以下几个部分。
参考索引参考索引应当是一个事无巨细的列表包含了所有功能函数的繁文缛节。它必须注明所有的数据类型和函数规格。高级开发者要能够拿着它整天当参考书使用。
开发指南这是介于参考索引和开发教程中间程度的文档。它就仿佛是一篇更加详细的参考索引阐明了如何使用各种API。
开发教程开发教程会更加具体地阐述如何使用API并着重介绍其中的一部分功能。如果能提供可编译运行的源代码那就再好不过了。
在Parse项目里我们做到了上述所有三个部分。目前我们正在努力编制更多的开发教程。
另外一个此方面优秀的范例是Stripe’s API(http://www.stripe.com) 。这个产品的文档包括一个很棒的《hybrid guide and reference》以及一套开发教程。《GitHub API参考》也经过了良好的设计。
2. 不要在例子中包含抽象概念
你可以争辩说我的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之类的好让你的读者有焕然一新的感觉。
至少这可以保证你的读者不会读着读着就睡过去。
结论
若要想深入人心一个良好的设计文档必不可少。然而设计一个好文档是需要大量投入才能形成的。但是这些投入是值得的因为它的意义和产品本身同等重要。
编写良好文档的另一半诀窍是要从产品开发的初始阶段就朝着这个方向努力。不过这就不是本文讨论的范畴了。