一款完美的SDK产品,肯定具备这9个特质

即保证用户能够在5分钟以内学会使用代码。这一点非常重要,特别是考虑到有时候用户会评估我们的产品——如果无法轻松上手,他们很可能直接选择放弃。

1. 简单性

简单的代码能够确保成果的易用性。具体来讲,代码的交互方式越少越好,例如只提供一个接口类; 减少方法签名,例如只保留少数输入参数等等。除了初始化之外,一切SDK的使用方式都应尽可能保持简单。要实现这一目标,大家可以提供默认配置及默认实现类,同时允许高级用户对其加以修改。隐藏一切用户不需要使用的类与方法,即只在用户需要时才开放类/方法,否则仅在本地或私有范围内使用。部分IDE能够帮助大家自动实现代码检测与冗余部分清除。说明文档:让文档尽可能易于理解,即提供充分的解释表述但又要注意别啰里啰嗦。另外,内嵌代码示例也是很好的提示方式。

2. 保证易于上手

即保证用户能够在5分钟以内学会使用代码。这一点非常重要,特别是考虑到有时候用户会评估我们的产品——如果无法轻松上手,他们很可能直接选择放弃。

3. 保持简短

这部分要求对说明文档特别重要,但有时也会体现在用户与SDK代码的交互流程当中。要在说明文档中实现简短效果,大家应当提供代码示例、使用自解释方法名称并提供默认配置。

4. 整合

我们必须记住,用户的开发环境往往多种多样。举例来说,如果我们在编写一套Android库,则需要充分考虑要素整合:如果用户使用Android Studio与gradle,则须提供aar artifact并将其发布至远程库; 如果用户使用Eclipse,则需要提供变更AndroidManifest.xml所必需的jar文件以及SDK独立eclipse项目。当然,这部分工作无法一蹴而就,大家可以在项目推进当中听取意见并逐步纳入更多整合元素。

5. 示例项目

在GitHub当中创建基础项目,用于模拟客户使用SDK的过程。通过这种方式,我们能够了解客户如何利用产品满足自身需求,又会提出哪些产品整合要求。如果大家打算展示某些高级用法,则应建立另一独立项目。一般来讲,用户会将其作为自己的主要说明文档来源,因此请提供内嵌注释并尽可能以自解释方式编写代码。

6. 概述

在说明文档或者README当中提供关于解决方案的总体概述。在这里,我通常会提供一个示例用例以解释SDK的常规使用情况。如果可以,不妨提供简单的图表或者图例,从而帮助那些没时间逐行阅读文本的用户快速掌握其使用方法。

7. 快速开始

使用SDK领域中被广泛接受的惯例性方法。我们应尽可能使用常规的负载、构建模式及其它设计思路,从而保证默认配置能够有效帮助用户快速开始项目使用。

8. 默认配置

良好的默认配置能够有效提升代码简单性并降低调整难度。我们提供的默认机制(无论是配置方案还是实现方式)都应适用于大部分SDK目标用户。大家可以提供多种重载方法,其中最简单的签名会默认调用更为复杂的方法签名。

9. 发布

提供不可编辑的脱机格式——PDF。我们能够轻松创建这类说明资料并将其保存在Dropbox上以备随时更新。 在线——建立企业网站。这是最理想的方式,但其更新工作也可能给IT团队带来一定负担。 希望这些技巧能够帮助大家构建起自己的完美SDK!

原文发布于微信公众号 - BestSDK(bestsdk)

原文发表时间:2017-06-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏禁心尽力

基于服务的SOA架构_后续篇

昨天简单介绍了一下本人在近期开发过的一个电商购物平台的架构流程和一些技术说明;今天将详细总结一下在项目中用到的各个架构技术的环境部署和细节,希望能够帮到大家,如...

21710
来自专栏Java技术分享

RBAC新解:基于资源的权限管理(Resource-Based Access Control)

本文讨论以角色概念进行的权限管理策略及主要以基于角色的机制进行权限管理是远远不够的。同时我将讨论一种我认为更好的权限管理方式。 什么是角色 当说到程序的权限管理...

7207
来自专栏编程微刊

微信小游戏跳一跳外挂教程(安卓版)

3342
来自专栏Rainbond开源「容器云平台」

基于akka的分布式实时消息系统

4334
来自专栏Python小白进阶之旅

学会了爬虫,然后我一不小心就统治了整个Python吧

2238
来自专栏DevOps时代的专栏

istio 是啥?一文带你简单了解!

如果你比较关注新兴技术的话,那么很可能在不同的地方听说过 istio,并且知道它和 service mesh 有着牵扯。这篇文章是我之前在公司内部做过的分享,可...

1.1K1
来自专栏java一日一条

Java开发的几个注意点

比如,没有把一些需要并发执行时使用的线程数设置成可在属性文件中配置。那么你的程序无论在DEV环境中,还是TEST环境中,都可以顺畅无阻地运行,但是一旦部署在PR...

971
来自专栏JAVA高级架构

浅谈高并发解决方案

摘要: 高并发一直是然个人头疼的问题;然而,其解决方式则是一套组合策略,由整体入手,逐步分析,逐步解决部分问题,进而解决所有问题;就像一支庞大的输水管道,不断的...

3626
来自专栏腾讯移动品质中心TMQ的专栏

精准测试新玩法の基于犯罪心理学挖掘代码风险

前言 犯罪心理学还能用于挖掘代码风险? 挖掘出来的东西是什么? 挖掘出来的东东长什么样子? 挖掘出来能用来做什么? 具体怎么样挖掘呢? 这是本文的主要探讨的内容...

1876
来自专栏企鹅号快讯

Java开发的几个注意点

将一些需要变动的配置写在属性文件中 比如,没有把一些需要并发执行时使用的线程数设置成可在属性文件中配置。那么你的程序无论在DEV环境中,还是TEST环境中,都可...

1806

扫码关注云+社区

领取腾讯云代金券