服务端的代码实现和设计思路(服务端的代码实现和设计思路是什么)

一、分享的目的

  • 在理解了服务端低代码平台设计实现的基础上,能够让大家更好地使用低代码平台扩展出更多的能力,丰富工具的打造,知道什么时候可以使用,如何使用。
  • kuta将来可能会走向内部开源,可以帮助kuta后来开发者对前面搭建的kuta架构有个高度概括的认识,在目前kuta中间层的基础上,扩展出更多的低代码能力,丰富目前kuta低代码平台所支持的功能。

二、低代码理念

2.1低代码概念的定义

  • 能够以最少的手写代码和设置快速开发应用、配置和部署业务应用程序。

2.2 低代码平台的历史

  • 低代码概念于 2014 年由 Forrester 首次正式提出,低代码产品由此开始了蓬勃发展。2015 微软正式发布低代码产品 Power Apps,2017 年分析机构 Gartner 创建了 aPaaS 的低代码新门类,2018 年 Outsystems 和Mendix 低代码平台等被争相收购, Google 发布自己的低代码产品 AppMaker。而在国内的低代码领域,阿里在2021 年 1 月钉钉宜搭低代码平台正式对外发布,低代码概念也就在国内火热起来,越来越多的低代码产品纷纷问世。

2.3酷家乐低代码平台

  • 酷家乐从2021年下半年开始搭建酷卡kuta低代码平台,我们把低代码概念应用在对测试工具的打造上,走了一条符合我们业务特性的道路。借助kuta低代码开发平台,技术支持可以自己或者在测试的指导下开发出更符合特定业务需求的工具。

三、KUTA低代码平台简介

服务端的代码实现和设计思路(服务端的代码实现和设计思路是什么)

3.1现状

  • 以打造一款工具为例,目前已实现通过工具配置的方式打造工具的前端逻辑,以及通过API配置的方式实现后端接口调用的低代码逻辑。

3.2劣势

  • 但代表后端代码逻辑的API配置只能实现单接口的调用,不能满足工具个性化打造的需求。我们常常遇到需要调用多个接口,并将接口返回数据进行一定逻辑处理后再返回给前端,此时,单个接口的API配置就无法满足业务需求。

3.3 解决方案

  • 因此,我们引入通过在前端编写少量Groovy代码来实现服务端低代码的配置,自动生成API,该类型API具有跟API配置中的api同样的地位,称之为Groovy API,我们通过在前端配置中关联该Groovy API,即可打通工具的前后端配置。

四、为什么要做服务端低代码

4.1传统的纯代码开发模式与低代码开发

服务端的代码实现和设计思路(服务端的代码实现和设计思路是什么)

4.2 低代码开发优势

  • 通用性:通过前端后端低代码配置,降低工具开发的成本和技术门槛,非开发人员可以参与,减少联调、部署时间。
  • 低成本:减少人力成本、沟通成本和时间成本, 既能够将工具开发的门槛降低,同时也能通过低代码实现更多的扩展能力。
  • 连通性:kuta在moon上部署,通过kuta的请求转发,可以打通各方存量系统,如各测试小组测试平台、酷家乐工具、商家后台、七彩石、pub、moon等公司内外部平台。
  • 高效率:提升工具开发效率,快速打造一款工具的前后端,无需前后端联调和部署,快速实现工具的个性化打造。
  • 敏捷性:设计灵活,业务与工具打造协同,可以在迭代内进行工具的敏捷开发。
  • 稳定性:代码结构化程度高,更容易维护。无需关心服务器、网络、数据库等技术概念和底层运维,kuta作为统一的解决方案,低代码开发者只需要专注于业务本身。

五、服务端低代码选型

5.1 为什么选择groovy作为后端低代码的实现方式?

兼具融合性和语言优势:

5.1.1 容易和java环境集成

  • Groovy支持 Java 虚拟机,在设计之初充分考虑了和Java集成,这使 Groovy 与 Java 代码的互操作很容易,非常容易集成在Java环境中, 而且可以无缝集成所有已经存在的 Java对象和类库。

5.1.2 语言容易上手

  • Groovy与Java的语法很相似,可以将Groovy想象成 Java 语言的一种更加简单、表达能力更强的变体。从学习的角度看,如果知道如何编写 Java 代码,那就已经了解 Groovy 了。它们的主要区别是:完成同样的任务所需的时间 Groovy 代码比 Java 代码更少。在 Groovy 中 , 可以完全使用 Java语法进行开发 ;

5.1.3 语言特性优势

  • Groovy在支持常规的Java操作或者说是语法的同时,结合了Python、Ruby和Smalltalk的许多特性。Groovy更像是Java的一个框架,类似SpringBoot这样的框架,封装了提升编程效率的语法。缺点也是因为它的语言兼容特性带来的。groovy对一些操作进行封装缩减,降低编写工作量,方便灵活编程。特性越多,越灵活的语言,性能越低。例如:Groovy 语言是动态语言.与之相对的 , Java 是一门静态语言 ; 具体就是在声明变量前 , Java 语言必须声明该变量的类型 , groovy声明变量时 , 可以暂时不指定变量类型;

5.2 前端编辑器选型

前端嵌入在线代码编辑器AceEditor,优化前端在线coding体验。

前端编辑器选型: 普通文本输入框——>CodeMirror2——>AceEditor

服务端的代码实现和设计思路(服务端的代码实现和设计思路是什么)

六、服务端低代码实现原理

Groovy 集成在Java环境中:

  • 我们所使用的集成机制是: GroovyShell
  • groovy.lang.GroovyShell作用:
  1. 执行 Groovy 代码
  2. 有更丰富的功能,比如 绑定更多的变量 ,从文件系统、网络加载代码等。
  • GroovyShell允许在Java类中(甚至Groovy类)求任意Groovy表达式的值。通过使用Binding对象输入参数给表达式,并最终通过GroovyShell返回Groovy表达式的计算结果.
  • Binding类主要用于传递参数集, 而GroovyShell则主要用于编译执行Groovy代码

private Object byGroovyShell(GroovyDto groovyDto, JSONObject paramObject) {

Binding binding = new Binding(paramObject);

GroovyShell shell = new GroovyShell(binding);

return shell.evaluate(groovyDto.getGroovyCode());

}

七、服务端代码与kuta融合-从怀疑中诞生,在摸索中前进

7.1 从简单的在线运行脚本到与kuta融合

在线运行groovyUI界面

服务端的代码实现和设计思路(服务端的代码实现和设计思路是什么)

上述版本仅简单实现了服务端在线动态执行前端输入的代码,和服务端低代码还相差甚远。

7.2 与kuta融合的版本

UI界面:

服务端的代码实现和设计思路(服务端的代码实现和设计思路是什么)

7.3 融合方式

通过在Groovy配置界面进行Groovy api的配置,在线调试groovy脚本,提交后,服务端会对Groovy code和groovy params做存储,自动生成Groovy Api展示在groovy列表中。

Groovy Api可以在工具配置时被工具关联,当工具调用时,会调用存储的groovy code和params,实现工具的服务端低代码调用。

服务端的代码实现和设计思路(服务端的代码实现和设计思路是什么)

7.4 丰富的功能

  • 在线编辑groovy脚本自动生成api,通过数据库保存groovy内容,在kuta前端通过配置工具可以调用groovy api,动态获取接口groovy api入参,动态执行groovy脚本,实现较为复杂工具的低代码打造。(优点:免除了用户在打造工具时的一系列繁琐行为,如安装代码编辑器/环境,调试时的环境启动,git操作,代码仓管理,联调,部署等,这些行为都可以被免去。同时还能使用更加简洁高效的语言。)
  • 前端的嵌入代码编辑器,支持代码提示和代码补全,近似于idea的编码体验。
  • 支持在线调试groovy代码, 代码调试支持返回数据的展示, 方便用户根据数据返回调整代码;支持在线调试的代码错误的异常提示,增加返回错误堆栈。
  • 实现了后端groovy常用方法封装, 封装简化http get和post请求,支持使用低代码调用已在kuta上配置的tool等,调用语句通常只有一行代码. 让用户使用更简单的语句实现工具的功能。
  • groovy后端支持默认导出包列表,已支持大部分常用包的导出,用户大多数情况下无需自己import包.(groovy默认导入常用的包)。
  • 支持代码模板一键复制,快速生成代码,提升编码效率,目前已提供了一些常用的代码模板,方便用户选择和使用。

八、整体架构图

服务端的代码实现和设计思路(服务端的代码实现和设计思路是什么)

九、工具调用流程图

服务端的代码实现和设计思路(服务端的代码实现和设计思路是什么)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月16日 下午12:10
下一篇 2024年5月16日 下午12:22

相关推荐

  • 开题报告由哪些部分组成(开题报告由哪些部分组成的)

    开题报告内容主要是将自己所选的课题概况向有关的专家、学者、科研人员来陈述;开题报告作为毕业论文答辩委员会对学生答辩资格审查的依据材料之一。 论文开题报告 (一)论文名称 这篇论文的…

    科研百科 2024年4月20日
    64
  • 2021陕西省社科基金拟立项(陕西省社科院科研项目结题)

    陕西省社科院科研项目结题报告 近年来,陕西省社科院一直致力于推动社会科学领域的研究,取得了一系列重要的成果。在近日举行的陕西省社科院科研项目结题报告中,我们总结了近年来陕西省社科院…

    科研百科 2024年4月1日
    64
  • 什么是运营管理系统?有什么样的重要性?(运营管理有哪些重要性)

    运营管理系统(企业运营管理系统、公司运营管理系统、医院运营管理系统等)是随着社会组织不断地发展壮大,日常运营管理工作日渐繁复应运而生的。运营管理系统为商协会克服危机、良性发展构筑了…

    2022年8月3日
    330
  • 会议管理流程(行政会议管理流程)

    我始终坚信: 管理就是走流程 没有规范流程,管理一切为零 ★按流程来做 流程为各项工作提供程序化的流程 保证办事有指导 ★用制度来管 制度为企业运行制定规范化的制度 保证事事有规范…

    科研百科 2024年1月2日
    60
  • 甘特图管理项目进度

    甘特图管理项目进度是一种有效的项目管理方法,能够帮助项目经理有效地跟踪和协调项目进度,确保项目按时完成。本文将介绍甘特图管理项目进度的方法和技巧,并提供一些实际项目中的应用案例。 …

    科研百科 2024年9月25日
    21
  • 汀州医院:明德艺精 省级科研立项课题实现零突破

    汀州医院:明德艺精 省级科研立项课题实现零突破 近日,福建省卫健委公布了福建省卫生健康创新课题的评审结果,汀州医院骨科梁兴斌医师团队主持的《富血小板血浆通过自噬-NLRP3炎性小体…

    科研百科 2023年8月5日
    74
  • 国外单位能参与国内科研项目吗

    国外单位能参与国内科研项目吗 近年来,随着科技的不断发展,国内科学研究取得了许多令人瞩目的成果。然而,在科学研究的过程中,也经常出现国外单位参与国内科研项目的情况。这时,我们需要考…

    科研百科 2024年12月5日
    0
  • 会议管理系统:提升会议效率的利器(会议管理系统介绍)

    在当今快节奏的商业环境中,会议是企业决策和团队协作的重要环节。然而,组织一场高效、有成效的会议并非易事。幸运的是,会议管理系统的出现,为提升会议效率提供了强有力的支持。本文将探讨会…

    科研百科 2024年4月28日
    88
  • 福泉管理系统开发项目

    福泉管理系统开发项目 随着数字化时代的到来,企业管理者越来越需要一种高效、智能的管理系统来辅助他们进行商业运营。福泉管理系统开发项目正是在这样的背景下应运而生的。本文将介绍该项目的…

    科研百科 2024年12月26日
    0
  • 软件项目管理综合实验

    软件项目管理综合实验 随着软件技术的飞速发展,软件项目的管理也成为了一个备受关注的话题。软件项目涉及到的技术领域多,项目管理的复杂度也相对较高,因此,软件项目管理的综合实验成为了一…

    科研百科 2024年8月22日
    23