问题背景

产品介绍

慧编程扩展设计器是慧编程 mBlock5 配套的扩展设计设计平台。新版的慧编程软件中提供了对大量硬件设备的支持(如 Arduino 系列和程小奔,光环版等一系列Makeblock产品线支持,另外,现在也增加了对大疆编程教育无人机产品 Trello 的支持)和软件上的功能扩展(包括人工智能服务,IOT,语音识别等功能)。这些功能的实现都是依靠一套插件扩展机制:即在慧编程中加载这些扩展,实现对慧编程本身功能的扩展。

扩展设计器的第三方开发

扩展设计器之所以有这样的丰富的扩展生态,离不开官方在扩展开发上的投入,以领头的姿态展示了扩展的潜力;其次,也离不开大量第三方开发者的踊跃参与。在 mBlock3 版本时代,扩展数量达到了400余个。

image.png

mBlock3 时期扩展的添加界面

image.png

mBlock5 时期扩展的添加界面

Makeblock于2019年6月推出了扩展设计器产品,改变了扩展编写的方式。

image.png

扩展设计器

mBlock5 和 mBlock3 的扩展开发、加载和发布方式有很大的不同,也有了更多的优点。

  • 扩展质量得到保证
    mBlock3 通过本地编写代码,上传至Github统一收录到官方扩展地址,然后发放至客户端扩展添加页面。而 mBlock5 则通过在扩展设计器中提交扩展,官方后台进行测试后才能上线,扩展的可用性和质量得到一定的保障;

  • 扩展编写的成本降低
    mBlock3 时期编写扩展需要通过本地代码编写,了解复杂的配置项,从而实现扩展编写;而 mBlock5 的扩展设计器只需要通过在线系统的配置+部分代码的填写就可以实现扩展的创造且支持多语言化。

  • 扩展管理方便
    mBlock3 时期扩展的代码数据都是在用户本地保存然后上传到Github上进行更新;但是 mBlock5 可以直接在系统中进行扩展数据更新然后提交更新审核,非常方便。随时随地修改使用,实现云端服务。

image.png

扩展设计器中的扩展管理列表

产品定位和目标

慧编程扩展设计器提供如此强大的扩展编写功能,主要是为了吸引更多的慧编程使用者和扩展开发者使用 mBlock5。其中一部分是吸引新用户,包括从使用 makeblock 硬件和慧编程支持的非makeblock硬件的玩家(如Arduino),另一部分是吸引来自 mBlock3 的旧用户(旧用户在几年的时间中已经积累了超过950万的用户,而 mBlock5 目前只有50万)。因此,慧编程扩展设计器的主要的产品目标是提升慧编程 mBlock 的用户量辅助提升 mBlock 在编程软件界的影响力

我的工作

我目前在慧编程扩展设计器的迭代过程了负责了以下几个方面的工作

1.Arduino 预设模版功能上线

Arduino 爱好者占据了相当一部分 mBlock3 的用户量,mBlock3 的茁壮成长也离不开Arduino用户的支持。因此,扶持 Arduino 用户是 mBlock5 产品发展的一个重要环节。

但是扩展设计器有着相当复杂的功能设计(特别是对于刚接触扩展开发的学习者),功能设计又相当的细化,细化到可以控制积木的每一个颜色,控制积木之间的距离,积木的转码规则等等。因此,我们收到的许多用户反馈都是扩展设计器学习成本极高,使用困难。

因此,在一系列调查和研究之后,我们决定针对目前扩展数量最多的 Arduino 扩展类型,开发 Arduino 预设模版,帮助用户快速创造 Arduino 扩展。

首先是梳理出扩展开发的用户路线图:

image.png

用户开发扩展的流程

此次迭代主要分为四点:

1、信息结构调整:根据当前扩展模板开发的需要,将一些基础的、常用的扩展设置项排在前面,方便用户填写

2、简化信息:根据当前扩展模板开发的需要,帮用户预设或自动生成一些信息字段,免去用户多余的信息填写——默认填充、简化步骤,减少认知负担

3、折叠信息:根据当前扩展模板开发的需要,将一些不常用的字段信息配置折叠到高级功能项中,免去用户多余的信息干扰

4、优化文案和增加提示:减少技术用语,尽量使用易懂的概念

扩展设计器Arduino预设开发模版产品结构图: https://www.processon.com/view/link/5d637fd6e4b08b95b82bee42

扩展设计器Arduino预设开发模版产品原型图: https://org.modao.cc/app/ccbqztkdhxfjzqxl8ltf777cus2dh8

扩展设计器Arduino预设开发模版产品页面结构:https://overflow.io/s/BQ391X

2. mBlock V3 扩展移植到 mBlock V5

之前的背景中提到了mBlock 3拥有400+的扩展量,这导致mBlock 3具有较强的用户粘性,某种程度上阻碍了mBlock 5的推广。因为我们考虑将这些扩展移植到新的平台上,同时吸引这批扩展的忠实用户也转移到新的平台上。

我们有一套移植扩展的脚本,通过对某些参数的修改和JSON文件的配置,可以直接mBlock 3扩展代码文件对接到mBlock 5上。但是这背后有更多的事情需要考虑:

  • 两个版本的扩展数据分别有哪些内容,有哪些差异?
  • 原来的扩展文件信息中有哪些数据(字段)是现在扩展没有的,怎么处理这批数据,是删除还是保存?
  • 现在的扩展信息中是否新增了一些字段,那么移植过来的扩展信息中没有,怎么处理,默认为多少?
  • 在现有扩展数量只有不到50的情况下,“扩展中心”在新增400个扩展之后,数据加载速度有影响吗?扩展中心的扩展展示排列方式是否合理?是否需要做分页功能?
  • 在增加400+扩展之后,“扩展中心”如何方便用户更加便捷地找到需要的扩展?需要做检索功能吗?检索是查询扩展名字段还是扩展描述字段?针对不同语言的扩展,检索时是否对应检索其字段翻译语言?检索结果按照什么顺序显示?未有检索结果时显示什么?
  • 新增的扩展可能存在功能问题无法使用,是否会影响扩展平台质量维度的用户印象,是否可以通过分类和评分机制区分官方扩展和第三方扩展,以及扩展质量的优劣?

因此,为了应对扩展增加之后的情况,我们在慧编程IDE扩展中心增加了检索功能和分页功能,帮助用户更好地浏览和寻找扩展。