前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个好的 SDK 或者一个开发平台应该为开发者提供什么?

一个好的 SDK 或者一个开发平台应该为开发者提供什么?

作者头像
巫山老妖
发布2018-07-20 11:11:51
1.5K0
发布2018-07-20 11:11:51
举报
文章被收录于专栏:小巫技术博客小巫技术博客

小巫最近在了解如何开发一个SDK,就上百度、知乎、简书去搜了一遍,发现这方面的文章比较少,这里挑选一些我认为还不错的回答让大家了解SDK开发需要满足什么条件,怎样才算是一个优秀的SDK。

以下内容摘自知乎:https://www.zhihu.com/question/20479235

来自『陆向东』的回答:

1、SDK 的开发语言版本应该覆盖业务常用的几个开发语言。 比如支付宝网站SDK会提供JAVA、PHP版的SDK。 再比如安卓的很多SDK都提供了Java、c/c++(cocos2d-x)、Lua(cocos2d-x)、C#(unity) 的版本。 2、文档完善 文档通俗易懂,提供本地版本和在线版本两种方案。 本地版本主要帮助开发者临时无法联网时查看,在线版本提供更丰富的文档内容资源。 3、接口简单 怎么才算简单?只要开发者传递几个参数就可以完成对接的接口是最简单的。 开发者无需关心协议、加解密、校验 等。 4、有开发者社区 让开发者之间相互沟通,相互解决问题; 积累问题、答案,梳理知识点。 5、提供技术支持 一般是电话、QQ、QQ群 6、提供沙箱 即:有调试环境,这个环境和线上环境高度一致,可以让开发者调试完成后无修改直接切换到生产环境。


来自『金亦志』的回答:

我们自己做 SDK 的,从用户反馈来看,应该是这几点比较重要: 1. SDK 覆盖主流编程语言 2. 接入简单,代码量少 3. SDK 框架合理,可以做到平滑升级 4. 技术文档易懂,demo 清晰(可以简单复制粘贴就可以运行) 5. 技术支持 7 X 24,完善的测试联调工具 6. 强大的管理平台,实时监控 SDK 运行 如果做到以上几点,基本可以认为是一个不错的 SDK 产品


下面摘自简书:http://www.jianshu.com/p/dfef5460ebc4

总的说来,一个好的SDK需要具备以下三个特性:

一、轻便且易扩展的SDK API

接入API一定要简单!要简单!要简单!重要的事情说三遍!对于SDK的客户端开发,虽然你可以任性地在不同版本随意的优化入参以及调用方式并且不会招致什么大问题。但是这对于接入SDK的开发来说,绝对是噩梦一般的存在。理想的SDK接入过程一定是非常“顺滑”的,哪怕不开文档只看接口,也能顺利接入,这才是一个设计良好的SDK。反之当SDK接入、更新的成本超过甚至逼近开发直接对接的成本时,这个SDK其实是失败的,而且也失去了应有的意义。

SDK也是一个产品,但是又有其特殊性:API一般说来要有一定的持久性和稳定性,因此需要在设计初期考虑到产品后期的业务发展趋势,提前留好接口的相关业务扩展参数。

二、已接入应用适配问题

保证已接入应用适配问题的关键在于两点:一个是极简集成、一个是分层设计。极简集成顾名思义就是把SDK做薄,只做最基本的业务参数传递和通道建立;分层设计则将SDK和业务核心模块区分了开来,这样可以让核心业务不受SDK版本的限制。

三、稳定性保障

SDK以及相关核心业务的稳定性也是至关重要,主要需要关注以下几点:

1、安全机制;

2、线程管理;

3、用户界面友好性;

4、内存使用情况;

5、CPU占用情况。

最后就是SDK的版本控制,个人觉得最好的版本状态是有三条分支:稳定版、开发版以及定制版。稳定版用于大面积的推广;开发版用于一些急于使用新功能的应用试用。稳定版本和开发版本的存在是为了提高SDK的版本质量,同时结合版本发布的一些策略,降低SDK版本质量对使用者的影响以及SDK的bug的影响范围。

文/溪西(简书作者) 原文链接:http://www.jianshu.com/p/dfef5460ebc4 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小巫技术博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档