开启这篇文章之前,首先我们来了解什么是“技术锁定”。所谓技术锁定,是指使用某一种技术,到一定程度后,整体的业务脱离不了这种技术,从而将客户“锁定”在该技术上,技术被锁定以后想替换成其他更好的技术将涉及更大的成本投入。
当前,低代码的概念火热,企业选择低代码平台能够减轻开发工作量,但可能建设完整的系统后,会发现很难脱离开,系统运行依赖于这个平台提供的容器或运行环境。平台的变化就会牵动你的变化,当低代码平台停止运行或者崩溃,开发人员会陷入困境。同时某些低代码平台封装的组件限制了专业开发人员的使用,反而相比较传统开发花更多的时间。
下面,我们来分析一下市场上主流的三款低代码软件所涉及的技术锁定情况:
平台01无法导出源代码该平台提供了前端代码开放能力,但此开发能力只是支持用户可以在界面上编写应用前端JS代码,无法导出应用源代码进行二次开发。平台02下载源码需要特定权限该平台官方表示没有技术壁垒,据称是可以拿到应用的源代码,但按照步骤实际操作下来,发现满足特定的条件,才有权限下载应用源代码,看出官方对技术上开放性是有抵触的,至少获取源代码不是很容易操作的事情。平台03更新代码无法脱离平台该平台虽然说是没有技术上的壁垒,可以转换成任务所需的技术栈,但这只停留在理论上,也没有提供方便的工具。通过该平台SDK从模型生成代码,但仅限于修改模型代码逻辑并生成应用程序,更新代码也完全无法脱离该平台的SDK。鲸智WhaleDI低代码平台无技术锁定特征上期内容我们讲述了鲸智WhaleDI低代码平台在人力资源业务开发上带来的效能提升。如果从“技术锁定”这一技术层面看,鲸智WhaleDI低代码有什么不同呢?比较后我们发现,与目前国内市面上大部分低代码产品相比,最重要的区别就是属于编译转换执行,具备无技术锁定的特性。应用运行时能够完全基于主流开源框架(后侧基于JDK/Tomcat/Mybatis/Spring/Apache类库等、前端基于vue/react/anglar等框架),不依赖鲸智WhaleDI低代码平台提供的容器和运行环境。下面,我们从几个方面来实现无技术锁定:
1.标准DSL
在鲸智低代码平台,提供了模型编辑器、页面编辑器、Action动作编辑器。通过这三大编辑器开发对应的应用。
l针对模型编辑器界面上的操作,生成对应数据模型DSL;
l针对页面编辑器界面上的可视化配置,生成视图DSL;
l针对Action动作编辑器的编排,生成动作DSL;2.转换器转换器的功能是负责将低代码的3种领域语言(数据模型,视图,客户端和服务端动作)转换成对应目标语言,基于DSL(DomainSpecificLanguage)领域语言,生成基于主流开源框架的源代码。l数据模型DSL会转换成Java语言,跟Mybatis数据访问层框架一起配合,完成逻辑和数据库访问,通过GraphQL框架暴露出相应的标准API接口。l同时服务端动作ServerAction也会生成对应java逻辑,将编排后的逻辑DSL直接生对应的java代码进行编辑处理与接口调用。l视图ViewDSL会转换成Typescipt+ReactJS的形式,客户端动作ClientActionDSL会转换成Typescript函数逻辑。基于转换器转换源代码三大亮点
l老项目+新需求,用搭建产出我们可以在鲸智低代码平台上搭建新的业务页面,然后通过出码模块导出这些页面的源码,连同一些全局依赖模块,一起Merge到老项目中。完成开发体验的优化。
l低代码不能实现的部分代码逻辑当项目复杂度较高时,比较好的方式就是将低代码研发和源码研发结合起来。复杂逻辑使用源码研发的方式进行开发。
l优化运行速度,提升输出代码可读性同时基于DSL生成代码,通过优化转换器能够在业务不修改的情况下优化生成代码,提升代码运行速度,提升输出代码可读性。
基于出码模块导出的源代码,在编译后有如下亮点
l极致的打开速度编译后的代码体积更小,执行速度更快。从而提升了加载速度,降低了带宽消耗;
l编译后可以直接运行编译后的js或者java代码都是可以直接运行,无依赖低代码平台或者任何SDK;
后续我们还将从技术视角出发,为大家带来更多干货知识,鲸智WhaleDI低代码平台已上架浩鲸云