OpenCAX+ SDK 的规划

在前面的文章中简单写了SDK 包含什么,这次写一写我对 SDK 发展的愿景。

  1. 维持开源为主体
  2. 高易用性
  3. 高完成度
  4. 可定制性
  5. 可拓展性
  6. 良好的社区引导

开源为主体

不要把开源弄成商业版的阉割版!不要搞成主要开发商业版,只是删掉些东西作为开源版,因为在开发的时候没有从开源的角度去开发,会搞得开源用户体验很差,导致用户粘性差。 开发的时候应该以给我们商业版开发实用工具的心态开发开源版。

高易用性

对于新老用户都要有易用性,主要体现在文档、编程和配套工具上。

文档角度看,对新人要有官方的 Get started 引导及几个完整的实例讲解,不要让人一上来就随便乱试。对老人要提供清晰的接口定义。

在编程上,对于新人要有零代码就能跑起来的完整例子。对于老人要有好用的项目模板,它可以快速填入自己的内容,或是允许大家自己提交自己的项目模板。

在配套工具上,对于新人要能够减少他们学习其他工具的时间,只要一两个命令就能完成大部分事儿。

高完成度

一方面是我们的 SDK 要体现出来高完成度。这种高完成度既体现在具体的方面,比如要有测试,发布等 CICD 一些列自动化的流程,也体现在宣传上,比如 golang 就是个反例,看它的网站总给人一种完成度不高的感觉,这可以学习那些互联网的新兴工具,他们的 landing page 都是做的不错的。

另一方面是我们产出的软件要是高完成度。用户使用我们的 SDK 能够轻易的开发出带着测试,CICD,软件发布,使用文档和软件主页的完整软件。

可定制性

一方面,SDK 要能简便的让用户替换模块,接入自己的程序,同时应该尽可能不限制用户如何编程。

另一方面,用户应该可以轻易的在 SDK 基础上添加自己定义的 starter,toolkit(不需要 push 回 SDK 的 git repo,就能够像原生的 starter,toolkit 一样使用)

可拓展性

插件、toolkit 商店,允许第三方提交

良好的社区引导

  • 官方的应用商店,插件商店,showcase,鼓励用户展示自己的软件、插件
  • Good first issue/pull request 引导新开发者贡献代码
  • 官方问答,stackoverflow?quora?
  • 官方论坛,discourse?reddit?
  • 视频教程、展示