SDK那些事(总纲)

写在前面

做SDK已经一年左右了,期间感触,收获良多。爬过不少坑,也给别人埋了不少坑。期间的很多问题如果一开始设计的时候就都考虑到其实会少了很多后面很阵痛的东西。

最近正好发现博客也没啥写的东西了,自己也想总结一下这一年的关于SDK的心得。分享一下自己的一些想法或者经验,探讨一下一些细节的内容。

最后列一下这个系列文章的经验来源(过去一年做的SDK),也算是借个光(不知道能贴金还是被鄙视)。我知道这两个SDK坑过不少人,但是求别喷我,我们一直在努力做的更好,也欢迎一起探讨。

今天是6月15号,历时两个半月,拖拖塌塌终于写完了关于SDK开发的这一个系列。最初计划写这个系列的时候并没有想这么全面。写下来的时候逐渐发现SDK确实是一项浩繁的工程,自己一直想在开发中处理的尽善尽美真是空谈了,只能是在开发中尽全力做到最好。唯一的遗憾就是因为中间个人的事情太多,拖得太久,虽然有大纲,但是写到后面和之前有些想法已经有一些偏离。不过好在总体来看,个人还是对自己一年多的SDK开发经历还是比较感触的,收获或多或少,总是有的。

那些年做过的SDK:

一些说明:

  • 这里都是一些自己总结的SDK前期起步的时候的心得和要避免的一些坑。所有结论性的内容,我会用红色特别标注出来的。描述的过程汇总我会先说说我们怎么做的,遇到了什么坑,然后给出个人觉得有效的解决方案。
  • 由于我们的SDK的使用对象为游戏开发,因此文中所有说的游戏指游戏开发,也就是我们的SDK的用户。

文章列表:

用过去的一周时间大概列了一下计划写的内容的总体的大纲。后面我会以每周一篇或者两篇左右的速度逐渐更新。

总纲

  • SDK那些事(总纲)点击查看 也就是你正在看的这篇,算是个开头和总体总结把。

SDK的一些探讨

这里主要分析一些关于SDK的想法,为什么做,怎么做,做完基础功能以后何去何从之类。

  • SDK之我理解的SDK点击查看 主要是一些自己对SDK的一些理解,为什么要做,SDK有什么特性,遇到的一些头疼的问题。(这个目前还没有具体思路,虽然是第一篇,估计要放在最后写了) 确实和预期一致,这部分内容放到后面发现反而更难写了,临时改变了策略。先把自己想到的写上去,后续慢慢回顾总结再逐步加上去。这部分内容写太久了,趁着最近不是很忙,尽快都完善了。细节的内容慢慢完善吧。
  • SDK之关于SDK的一些想法点击查看 主要是对SDK的前路的一些思考。当SDK的主要功能,或者所有功能都已经完成以后,基于这个SDK我们还可以做什么,还有哪些发散点的一些想法。(这个也是只有一个大概思路,最后完成吧) 和预期不太一致,之前以为这部分内容可以写的会比较多,但是最后写下来发现也不是很多,尤其是有些可能个人不太认同就没有写太细。而且加上时间太久了,感觉这两篇写的有些缺陷。尽善尽美太难做到,就像做SDK一样,暂时就这样完结,后面翻出来看的时候再慢慢纠正吧。

SDK设计的心得

这部分主要总结一些再开发中遇到的因为前期设计不合理带来的一些阵痛以及改良的方法。

  • SDK设计心得之版本号点击查看 主要是对开发中SDK的版本号相关的一些总结和探讨。包括应该有几个版本号,这个版本号怎么生成怎么维护(这部分内容可能会和开发经验中关于版本相关的内容结合在一起)。
  • SDK设计心得之错误码点击查看 主要是对开发中与错误码相关的一些细节的分析和探讨,包括错误码有几级,默认的错误返回怎么初始化一级对于第三方平台的错误码如何处理等。(这部分内容也踩了不少坑。所以最先完成了。)
  • SDK设计心得之接口设计点击查看 主要是对开发中接口设计的一些探讨,包括接口名称,回调设置、多线程、第三方平台的处理等。(这部分内容相对会比较好写一点,因为坑的比较多,思路比较清晰。)
  • SDK设计心得之架构和资源点击查看 这部分内容主要是对开发初期,怎么设计SDK的整体架构以及关于资源文件处理方法(这部分内容不多,相对好写)。 这部分内容确实好写,但是发现从计划开始写到现在竟然已经过去了两个多月,时间过的真快,最关键的是今天发现好多之前的思路都有点模糊了~~最近要尽快写完这个系列了,目前遗留的几篇应该都是最难写的了~~

SDK开发经验

这部分内容主要是总结一些在项目慢慢积累总结的开发经验,感觉这部分内容其实和SDK开发关系并不大,无论是做什么的开发,这些点都应该注意,养成良好的开发习惯。

  • SDK开发经验之版本点击查看 版本是任何产品的核心,这里主要讨论版本如何发布,发布中的一些机制、流程;要不要兼容老版本,要怎么向下兼容等。(本设想这里的内容会和版本号还有关系,争取一起出了;最后做了一些改动,反而和测试关于更大,那就优先完成测试相关的内容吧)
  • SDK开发经验之测试点击查看 如何才能保证一个高质量的版本,肯定是非常完备的测试,这里主要介绍我们采用了哪些测试方法。我们怎么保证提交测试的版本质量,开发和测试应该怎么配合做一些想法。(本想和版本一起,结果发现内容还是太多了,分开吧)
  • SDK开发经验之开发习惯点击查看 良好的开发习惯在项目中,尤其是多人协作中会大大提高协同开发的效率。这里主要聊一些关于注释、TODO标签等方面的习惯。(不会涉及到具体的语法习惯,因为这个有差异,主要还是说一些想法吧。这部分内容也比较杂,慢慢来写) 这部分内容最终也补充上了,有点虎头鸡尾的感觉,因为写到后来感觉这部分内容不同的开发者差异性很大,其实没有太多的参考价值。
  • SDK开发经验之文档点击查看 对于SDK来说,如果只是提供接口,开发接入的成本其实很高,而文档和demo则是降低成本的利器。这里主要讨论文档关的一些内容。本来想和demo一起写,后来发现没那么容易写,而且好久没更新了,就分两篇吧。
  • SDK开发经验之Demo点击查看 对于SDK来说,如果只是提供接口,开发接入的成本其实很高,而文档和demo则是降低成本的利器。这里主要讨论demo相关的一些内容。上午感觉词穷了,而且觉得内容比较多就分开了,结果下午发现逗比起来,还是比较好写。先加上,后续再想到陆续补充吧
  • SDK开发经验之自动构建点击查看 这里同样不会过度分析Android的自动构建工具有哪些以及他们的优缺点,为什么要使用自动构建等等。本文的侧重点还是集中在SDK的自动化构建中主要做那些工作。 最近在重新整理SDK这个系列的过程中才发现关于自动构建提到的或者介绍的地方很多,但是对于自动构建具体介绍的内容很少,因此现在再补上一篇。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构师进阶

一个程序员对架构的认识

架构是一个系统的草图(逻辑+物理角度),它是有生命的,随着业务的变化会不断演进。没有完美的架构只有合适的架构。

1113
来自专栏zzzz

hadoop大数据平台架构之DKhadoop详解

大数据的时代已经来了,信息的爆炸式增长使得越来越多的行业面临这大量数据需要存储和分析的挑战。Hadoop作为一个开源的分布式并行处理平台,以其高拓展、高效率、高...

1763
来自专栏娱乐心理测试

关于iOS实现前台,后台,锁屏或关闭app语音播报

8894
来自专栏WeTest质量开放平台团队的专栏

双十一临近,怎样让买家流畅地秒杀? ——腾讯 WeTest 独家开放电商产品压测服务

从拍脑袋到场景化压测,双十一的现象级大促从来不是一蹴而就。

2930
来自专栏软件测试经验与教训

软件测试从零开始

3769
来自专栏云计算D1net

保护公共云和混合云中的数据

自从人们开始依靠技术来运营业务以来,备份,业务连续性(BC)和灾难恢复(DR)已经成为30年来IT团队工作的重要组成部分。传统解决方案是针对内部部署基础架构和结...

3446
来自专栏最新活动整理

腾讯云主机的特点和优势

很多朋友都想买腾讯云主机,但是对腾讯云主机的优势和特点缺乏一定的了解,腾讯云主机有什么特点?腾讯云主机有什么独特的优势呢?今天,简单总结下腾讯云主机的优势和特点...

4620
来自专栏IT大咖说

经历了研发困局、运维之痛,同程微服务从1到1w的旅程

内容来源:2017 年 9 月 9 日,前同程艺龙架构师谢康在“ArchData技术大会上海站”进行《同程微服务从1到1w的旅程》演讲分享。IT 大咖说(微信i...

1693
来自专栏架构师之路

feed流拉取,读扩散,究竟是啥?

答:微博,微信朋友圈,Pinterest是典型的feed流业务,系统中的每一条消息就是一个feed。

3333
来自专栏developerHaoz 的安卓之旅

如何有效报告 bug

这也是「技术支持」被视为一个可怕工作的原因。然而,并不是所有的 bug 报告都是让人不愉快的。我一直在没赚钱的时候维护开源软件,有时候会收到一些非常清晰的、有帮...

1172

扫码关注云+社区

领取腾讯云代金券