美文网首页
VSCode插件开发

VSCode插件开发

作者: 空山雪林 | 来源:发表于2023-03-13 12:45 被阅读0次

概述

通过给visual studio code安装插件的形式为公司提供一站式基于数据的解决方案,包括不限于数据采集,数据计算,数据抽取,数据展现等,平台提供javascript(支持es6语法),python3,ss(原创数据处理领域语言)三种开发语言,让您可以轻松编写数据处理脚本。该脚本的执行触发形式支持以下方式:

  • 手动任务:需要用户手动触发
  • 定时任务:基于cron表达式的定时任务触发;
  • 表触发任务:基于mysql表数据实时变动时触发,可灵活定义表/字段触发范围和数据合并滑动窗口(秒)触发;
  • 流数据订阅任务:基于其他流数据形式变动的触发,流数据来源包括但不限于kafkarabbitmq,rocketmq,redis

脚本可以被发布成RestAPI,这样您提取的数据被其他人引用或做成UI界面供其他用户浏览。

image.png

技术要点

vscode插件开发可参考:https://code.visualstudio.com/api/get-started/your-first-extension

  • 语言服务:包括如何定义自定义领域语言语法高亮,Hints,自定义类调用的代码提示,代码模板等;


    image.png
  • websocket通信:用于将代码中的打印信息推送到vscode的output区域,输出区文字颜色区分


    image.png
  • restapi:所有与后台交互的请求服务都依赖于它,UI中几乎所有数据都基于该接口请求数据

  • 外部页面引用:目前看只能基于WebView,并发布在插件本地


    image.png
  • 自定义面板:树的动态加载与渲染,按需加载不同右键菜单,树节点图标和样式


    image.png
  • 工具栏按钮扩展:整合运行按钮,自定义工具按钮等


    image.png
  • 事件底层联动交互


    image.png

亮点功能

运行环境隔离

数据开发是一项非常严谨的工作,需要严格的上线流程,否则针对数据的物理修改和删除会引起致命性生产问题,所以,针对数据开发的流程,首先就要做到环境隔离,写脚本的工程师需要在测试环境调测脚本(包括危险的DML操作),测试环境验证通过后,提交脚本上线申请,由专员审核脚本,确保没有危险操作,在兼顾开发效率的同时,也确保脚本安全。

规范上线流程

vscode提供了体验友好的编程环境,插件提供了脚本上线统一的流程,包括:代码编写 -> 测试环境调测 -> 申请发布 -> 脚本上线/拒绝。

多种执行方式

提供了脚本四种模式的触发执行,几乎涵盖所有数据业务处理场景:

  • 手动任务:跑批或一次性数据处理任务。
  • 定时任务:定时触发的数据任务,如每日数据清盘,爬虫抓取等。
  • 表触发任务:可用于数据实时计算,复杂触发器的编写,缓存更新等
  • 流数据订阅任务:异步分步数据处理任务,流数据来源包括但不限于kafkarabbitmq,rocketmq,redis等,通过侦听相关队列实现数据的实时计算。

sqlone语言

为进一步降低提取数据的使用门槛,我们在平台中统一使用sqlone语言(标准SQL语句)来提取包括kafkarabbitmq,rocketmq,redis等的流数据和mysql,oracle,clickhouse,ElasticSearch等的数据库数据。

image.png

代码提示与模板

数据开发平台提供了一系列内置API库,详见文档:https://sdp-ui.idbhost.com/apidoc2/#/

平台除了对指定语言进行语法提示外,还支持对内置类/函数调用的语法提示,如下图:


image.png

关于ss语言

有了jspython脚本语言,为什么我们还需要原创ss数据处理领域语言,这是一门语法更简单、灵活、智能的数据处理语言,主要面向产品部和数据部人员,可方便他们快速更面向可视化的提取数据,大大降低编程门槛。如它可以采用混编语言更快速提取数据,利用??操作符可更安全处理空值,内置死循环判定等。如果要体验ss语言可访问:http://coding.sumslack.com

image.png

对外接口发布

调测好的脚本通过发布API操作可将接口返回的数据提供对外服务,在后续制作表单和自定义报表时提供服务,这样就可以开发自定义UI页面供外部使用。

可视化动态页面开发

通过简单的拖拉服务开发属于自己的UI页面,页面中的动态内容可由本平台开发的脚本语言通过发布API提供。

image.png

相关文章

网友评论

      本文标题:VSCode插件开发

      本文链接:https://www.haomeiwen.com/subject/mbjcrdtx.html