跳到正文
八一菜刀
返回

Knife4jInsight的产品开发历程

前言

大家好,在昨天Knife4jInsight的1.0.0MVP版本发布之后,在Knife4j的交流群分享说,希望Knife4j后面的版本,不管是开源版本还是商业版本,希望以:开源项目生态+付费产品闭源+Build On Public的模式一直走下去!!!

今天这篇则是践行Build On Public策略,分享在开发Knife4jInsight过程中的一些感悟及想法!

在很早之前分享的Knife4j5.0规划里面,我提到希望重写Knife4j的前端实现,并且能够将工具事项一直发展先去,把Knife4j始终定为一个工具组件,提供一些让开发者在日常文档开发过程中方便使用的功能为先。

而在大概2个月前,我在交流群时常会碰到很多人在问Knife4jInsight开源版本的问题,在之前Knife4jInsight开源版本中,我主要实现了讲各个注册中心进行集成,所有的数据源存储在本地磁盘或者Nacos配置中心作为数据源来存储。我个人认为在思路上是没有什么问题的,但是在产品的使用上,程序员思维太验证了,没有提供一个可操作的界面供用户操作使用,提了一些概念,对用户使用来说,现在回想起来简直是灾难。基于这个想法,加上后面对希望Knife4j改版的热情,就产生了将开源版本Knife4jInsight转换为付费版本的想法。

主要考虑一下几点:

确定了想法之后,说干就干,最终在Xmind大致罗列了下这个产品最终的具体事项,主要4个方面,如下:

image-20230920063409469

系统用户

平台以OpenAPI规范数据源管理为主,而OpenAPI规范是企业的数字资产,那么用户功能必然必不可少,接口文档是企业的隐私,需要用户权限来限定谁可以访问,谁不可以访问。

在用户层面,以用户和角色进行展开:

平台特性

平台特性主要是确定平台等风格,如下图:

image-20230920064851083

主要功能

主要功能则是在开发MVP版本期间确定的功能以及想到的后期一些扩张功能,如下图:

image-20230920065131593

至于二期功能,则是在开发过程中想到的一些功能点,在xmind中记录,后来我把这些功能又单独在项目的官网文档上进行了维护,主要是产品的RoadMap

官网功能RoadMap地址:http://knife4j.net/roadmap/

image-20230920065636597

后期的功能:

对于注册上来的OpenAPI数据源,平台基于开放的翻译API接口对OpenAPI结构进行解析,解析完成后自动翻译文档注释说明,这样我觉得企业开发者在做i18n文档国际化时,在代码层面只需要按常规的固定流程开发即可,而无需从代码框架层面实现i18n,整合i18n功能到平台中可以不止做一种语言,后面扩展更多的语言支持也是及其方便的

目前MVP版本还是手动上报填写,但平台已经预留了接口自动上报的函数接口,基于用户的开发密钥,将自动上报功能整合到Knife4j开源的各项starter组件中,开箱即用,即可在项目启动后自动上报OpenAPI规范数据至Insight平台中,这样即可避免各种404、鉴权等集成Knife4j组件的问题,开发者只需要将Insight平台中的文档提供出去即可进行接口对接

开源Swagger-editor组件提供了在线设计接口及所见即所得的能力,整合后可以先设计规范接口,后实现代码,后期还可以考虑整合OpenAPI规范生态的代码生成功能,在线提供各种导出、代码生成等功能

微服务开发是目前当下主流的开发技术栈,而打通各个注册中心则可以在平台端主动去pull拉取各个子服务的OpenAPI数据源,对于手工填写OpenAPI规范管理提供了便利,和微服务OpenAPI规范数据源自动注册上报功能相比,一个是主动pull拉取,而另外一个则是被动推送到Insight平台,是两种策略

进度计划

确定好了功能,那么就是计划排期了

计划排期

image-20230920070738423

开发一个产品要做的事情针对太多了,首先是确定MVP版本的开发周期

因为作者也是在职,所以不可能全职参与这项工作,只能是利用下班后或周六周日的时间来进行开发,MVP版本也是保证产品的最小可用版本,所以计划的是花1-2个月的时间来完成

以下是GitHub的提交记录,大概从7月份开始有想法之后,开源和产品的迭代基本上是每天一有空闲则进行代码的提交

image-20230920070951980

上线准备

当项目功能开发完成后,需要做一些上线准备的事情,这里面主要包括:

运营推广

开发好了,也上线了,就考虑推广的事情了,另外也要考虑产品的定价

**产品定价:**对于产品的定价,既然是工具组件为主,我所期望的是还是更平民一些,更高的价格则代表着更高的要求和产品价值,Knife4jInsight是一个初次尝试的商业化产品,我觉得获得市场认同感很重要,毕竟商业版我更多的想法也是想驱动开源Knife4j版本的迭代更新,是开源版本Knife4j的补充,企业需求的能量池,更多的算是一种开源变现的手段吧,就定价在49.9/年

产品license:license是软件启动时所需要的,在思考license职责过程中,我也思考了很多,比如使用期限、边界、产品交付物等等方面,最终思考如下:

运营推广:之后产品上线后就是运营推广了,我觉得这是一个长期的事情,在保持对产品的持续迭代输出之余,通过公众号或者官网文档、技术交流群等,都可以进行推文,写文章也算是一种锻炼,而践行Build On Public历程我觉得对于我自己来说也是一种不同的开发体验,即使是在开源项目中。

最后

Knife4j并不完美,期待Knife4j及Knife4jInsight与用户一起共同成长见证~~~

官网地址:http://knife4j.net/


分享文章:

上一篇
Knife4jInsight平台版-MVP版本v1.0.0发布
下一篇
Knife4j新产品的想法