您现在的位置是:首页 >技术杂谈 >你真的了解低代码吗?网站首页技术杂谈

你真的了解低代码吗?

不叫猫先生 2024-06-17 10:48:29
简介你真的了解低代码吗?

? 个人主页:不叫猫先生,公众号:前端舵手
?‍♂️ 作者简介:2022年度博客之星前端领域TOP 2,前端领域优质作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀!
?优质专栏:vue3+vite+typeScript从入门到实践
? 资料领取:前端进阶资料可以找我免费领取
? 摸鱼学习交流:我们的宗旨是在「工作中摸鱼,摸鱼中进步」,期待大佬一起来摸鱼(文末有我wx或者私信)。

一、低代码平台问题

最近研究了一堆低代码平台,重点放在“代码生成型”低代码上(也就是生成应用可以单独导出独立部署的那种),道理很简单aPaaS型(也就是几个SaaS+用户和权限管理这种)其实都差不多,用哪家好像都一样。
研究的“代码生成型”平台,国外有Mendix、Outsystems,国内有iVX、网易轻舟、浩鲸灵犀、无远、牛刀、活字格(严格上不算代码生成,后面发现)…
发现了一个重大问题,现在都把研发的重点放在了“功能的堆积上”!,好像招标的时候这个功能点也有、那个功能点也有,实际操作上完全不是那么一回事。包括国外的牛逼产品,要想做一个简单应用,要打开十多个不同的页面才能完成,有的几十个;有的封装成不同类型的子工具。国内就更不敢直视了,我重复一个小应用,光画个流程图,就把我累死,很简单流程来的。我不敢想象,如果复杂的应用,那么小一个画板如何装下那么复杂的流程?而且大概十几个不同的窗口,有些甚至需要点下去4、5层这个操作才完事儿。
总体来说,iVX应该是“产品整合能力”最好的,只有5个核心页面,最深1层,这才是IDE应该有的样子。

二、低代码平台评价方法、价值观、来龙去脉

低代码产品来源主要有三个渠道,如果不算广义的CRM、ERP系产品(Wix、WordPress、Odoo…这些),这些产品构成了现在低代码的主要格局。

从MADP/MXDP演进而来:

MADP代表“移动应用开发平台”,其实就是做原生APP可视化开发的平台;MXDP代表“混合多体验开发平台”,实际上就是在移动原生APP开发平台基础上增加了对Web App的支持。现在有了GPT,我直接把GPT4的描述写在下面,大家就很清楚了。
在这里插入图片描述
大家会发现最主要的厂商都在上面… Mendix Outsystems PowerApps 等。
这类低代码产品的特定也非常清晰:多数做企业服务(会有一套完整系统安装到企业内部),有相对复杂的IDE,功能上也相对比较完整,研发的周期也比较长,大部分都在10年以上。这类型产品,主要其实也是给研发人员使用的,或者他们叫“CitizenDeveloper”,但是真正的业务人员很难学会。

之前做“SaaS”、“BPM”以及“Bi”为主的厂商

这里面比较有名的是 ZoHo Creator、Salesforce、Airtable、AppShee、Appian 、Tableau、PowerBi等,国内有很多厂商都是从这个领域介入低代码研发的。这类型演变过来的低代码产品,往往场景比较明确(主要是“BI场景”、“工作流BPM场景”、“在线表格场景”、“在线表单场景”这四种),通常是多个“引擎”和“模型”驱动的,基本都可以给业务人员直接使用,感觉上就像是很多SaaS+用户+权限管理,开发全新场景时,灵活性会受到一些限制。

重点想介绍的——代码生成平台

这类平台国内比较少,而且主要专注于“通用程序开发”,是一种底层通用技术(上面提到的更倾向于“应用开发框架”),因此也不会限制只用于“企业服务”。
国外的代码生成平台主要包括以下这些:
前端代码生成平台:WebFlow Wappler PineGrow ReactStudio
后端代码生成平台:Backendless Firebase (by Google) Stapi
数据库代码生成平台:Prisma DbDesigner SQLDBM QuickDBD
具有统一的前后台代码生成能力的就比较少了,主要有: Bubble Appgyver (By SAP) Retool ,国内就只有 iVX 一家。

有了这些基础知识,那下面介绍起来就比较轻松了。接下来…

三、如何评价低代码平台?

我列出了最核心的三项,以及我觉得重要的评分项,供大家参考。

核心能力一:功能和性能 ?(详细见后面列表)

(大白话就是:不写代码能做什么?做得怎么样?)这个重要性不言而喻,有些低代码平台说自己“接代码”什么都能实现,这句话当没说。核心还是一句,不写代码能做什么!这个地方我觉得可以补充一下,就是“低代码编程”和“代码编程”的关系,我们觉得最佳实践就是“充分非必要!”,即“什么代码都可以用,但是不用也都行”。

核心能力二:是否锁定 ?

我先解释一下,什么叫不锁定?最佳状态就是“和手写代码一个样”,最好“调试方式和代码管理”都可以继承。这里面分几个层面:例如“低代码平台”生成的代码可以被现有的代码形式“直接接受”,意味着原有的开发项目直接可以以插入的方式使用。另外,以前端为例,可以直接在低代码平台中直接导入以前开发“组件或代码”那是更好。其实开发者不一定需要在“二开”的时候,直接修改“低代码平台”导出的源代码(如果可以导出),而是需要这种“修改的能力”!这是一种“安全感”,这一点其实非常重要,当然难度也是最大的。
坦率的讲,想在绝大多数的低代码平台都存在锁定用户的问题,即无法实现“应用代码导出和独立部署”,有些是可以打包导出一个加壳文件,最后还是要导入到特定环境中运行的。大概如下图所示:

情形一:所有应用都在框架内部,无法导出独立部署

在这里插入图片描述

情形二:应用可以导出,例如导出成 mpk或osp文件,但是只能导入到自身平台环境运行

图片: https://uploader.shimo.im/f/kUGca9R4AsVOPEfA.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE2ODQyOTEwMjAsImZpbGVHVUlEIjoiMWxxN3JPT2dFT1NSTTYzZSIsImlhdCI6MTY4NDI5MDcyMCwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjoyNjQ1ODc1Mn0.stUpX-1T6NjYPkNCOrXJtgKvAz0W9M0IkzJ-pUHlSKo图片: https://uploader.shimo.im/f/Y5J9REnrV2veJNWv.gif?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE2ODQyOTEwMjAsImZpbGVHVUlEIjoiMWxxN3JPT2dFT1NSTTYzZSIsImlhdCI6MTY4NDI5MDcyMCwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjoyNjQ1ODc1Mn0.stUpX-1T6NjYPkNCOrXJtgKvAz0W9M0IkzJ-pUHlSKo​

核心能力三:产品整合能力 ?

我研究过很多低代码产品,很多产品从“开源”魔改而来,“功能堆叠和拼接感”严重,看上去吧好像这个也有,那个也支持,但是用起来完全不是那么一会事儿。说白了就是“其实开发一个应用有可能比写代码还费劲”。从一个侧面反映就是,窗口数量众多、操作层级特别深、逻辑和管理混乱,有些逻辑控制甚至有多个入口。道理其实也很简单,现在无论大厂小厂要开发一个产品时,先就找对应的开源产品和框架,然后开始组装和拼接,但是其实开源产品可能设计初衷并不是为了“低代码”,而且拼接越多,整个产品就越笨重,越难以驾驭。

以下是我总结的低代码产品的基本评分项,并以 iVX 为例进行了描述。有什么新的评分项,大家还可以补充,我们不整虚的,行就是行,不行就是不行,希望低代码生态可以越来越健康。
低代码能力评分项(详细版,附带iVX评价结果)

评价项评价说明iVX产品评价结果
平台会锁定用户吗?分几种情况:1. 直接生成外部环境可以运行源代码,无锁定;2. 生成只能在平台内部环境运行的应用,锁定;3. 平台生成应用,应用可以以某种平台特定格式导出,但是必须在平台环境才能导入,为部分锁定。例如mendix/outsystems 就输入部分锁定。Power Apps也只能在Azure中运行也是这种部分锁定。可以完整导出前端、后台、数据库代码,可以在任何环境运行,无锁定
平台收费方式?分几种情况或组合:1. 平台免费,使用使用云计算服务时,收取云计算费用;2. 根据最终应用的用户数量进行收费;例如一个应用最终是100人还是100万人,价格差距很大;这种往往是上面提到的“锁定”或“部分锁定”模式造成的;3. 根据开发者数量进行收费;4. 根据开发的应用数量和类型进行收费;IDE和平台免费,如果使用到了云计算,云计算收费;如果不使用云计算,应用可以免费导出平台,自行部署;
支持整个平台支持对外部署?这里不是指平台内部应用导出部署,而是说整个平台在公网或局域网内部部署支持
应用导出支持的部署方式?例如包括:单机部署(Linux/Windows)、云端虚拟机部署、Docker+K8S部署都支持
是否支持导出应用一键部署?例如会帮用户安装MySQL和redis如果用户服务器或虚拟设备上没有安装,然后一键完成部署,只需要填写一些IP 用户名和密码等支持一键部署
对ARM或国产芯片/麒麟系统支持?整个平台支持ARM环境?生成的应用支持ARM环境?整个平台支持在麒麟等国产系统中部署?生成应用支持在过程麒麟等系统中部署?全部都支持
平台或工具/IDE的开发环境?是Web环境的B/S架构,还是C/S架构的产品?B/S架构
平台使用者一定要会某种代码吗?对于绝大多数应用来说,由于平台描述逻辑方式的限制,或者没有完备描述前后台逻辑的方法,因此,必须引入代码。或者由于组件不完备,必须引入代码。无需懂代码
如果要懂代码,平台需要懂哪种代码?一般包括SQL、JS(包括框架react/vue等一种)、Java、Python、Node.js、PHP、.net代码一种都不是必须的
开发者使用平台能生成大概代码比例?主要根据平台“无代码逻辑表达能力”以及“组件多少和架构”来确定,例如,如果前后台都需要大量代码的,工具或IDE只是辅助,那么生成代码量一般小于30%;如果需要输入代码不多,但是一定需要代码才能完成的,一般代码量在60~70%,如果完全不需要代码,大部分应用都可以完成的,自动生成代码量可以大于95%。通常生成代码超过应用总代码量95%;
iVX和代码关系为“充分非必要”
平台能够支持的开发的应用类型?包括其中一种或几种:WebApp、iOS/Android原生应用、Win/Mac/Linux原生应用、微信小程序、或Google或FB平台内的应用格式支持WebApp、iOS/Android原生应用、Win/Mac/Linux原生应用、微信小程序
平台支持的应用的场景有哪些?包括:1. 全场景,无论个人应用还是B端应用,无论游戏、电商、各种企业场景、iot、各类系统都可以开发;类似编程语言,本身没有什么限制;2. 主要支持BI场景(根据数据作图)、在线表单场景(用于快速填写,快速提交)、在线表格场景(类似在线的excel或Google sheet)、BPM(流程图、审批流场景),用户可以根据这些场景再延伸,以及做近似的二次开发,产生新的相似应用或场景;3. 主要支持BI场景(根据数据作图)、在线表单场景(用于快速填写,快速提交)、在线表格场景(类似在线的excel或Google sheet)、BPM(流程图、审批流场景),但是就是给业务人员使用的,操作和使用更简单,但是灵活性较差。全场景
支持应用或生成代码的范围?1. 生成整个应用,以及全部代码;2. 生成整个应用,不生成代码;3. 生成整个应用,生成部分代码或生成代码不能脱离平台;4. 只生部分代码,例如只生成前端/后台/数据库中一部分,不能单独使用;生成整个应用,以及全部代码
代码逻辑可视化的方式?现阶段大体分5种:1. 流程图模式,类似mendix/outsystems这样的要化流程图的;2. Scratch模式,就像Scratch一样,一块块积木,拼接出来表达逻辑;3. iVX模式,事件面板模式,是一个面板,有一点像construct2/3,但是设计更好,全部都是数据点选,所有组件都面向对象设计,可以在事件面板中操作,也可以加“if” “for” “function” 等事件块,完成整个逻辑表达,且是图灵完备的;4. 公式表达式模式:例如Power Apps采用类似Excel的公式表达式来表达逻辑;5. 函数式模式,例如SAP的Appgyver,把函数的出参和入参用线连起来表达逻辑。iVX的事件面板模式
组件的架构?具体包括:组件一层架构还是多层架构?例如iVX就有3层组件架构,以平衡灵活和效率;是否区分了前台和后台组件?iVX三层组件架构:微组件(不可见)、基础组件(100+)、小模块(1000+);前后台组件分离
组件是否支持自定义组件?支持自定义前端组件?支持自定义后台或数据组件?前后台都支持自定义组件
是否用word/excel/ppt兼容的组件?主要是为了在企业办公中可以整合现有离线文档全部都有
支持哪些语言的SDK上传?为了更好支持对原有代码的集成,最好能支持SDK上传支持 Java/Node/Android/Javascript SDK 上传
支持微服务?一切为了重用和管理,微服务是重要的手段支持微服务
支持数据库情况?mysql/SQL server/PostgreSQL/Redis/ClickHouse/neo4j/Mongo DB/ES/MQ/国产数据库全部支持
数据库支持能力如何?是否支持数据库常见功能,例如:索引、join、事物、存储过程(存储过程基本都建议不用)支持索引、join、事物
支持RBAC进行用户访问和权限管理?RBAC是基于角色的访问控制,是一种访问控制方法,可根据最终用户在组织中的角色为其分配权限。RBAC提供了细粒度的控制,提供了一种简单、可管理的访问管理方法,与单独分配权限相比,这种方法更不容易出错。这可以降低网络安全风险,保护敏感数据,并确保员工只能访问信息并执行他们完成工作所需的操作。这被称为最小特权原则。RBAC的实现方法包括:定义角色、定义权限、将角色分配给用户、将权限分配给角色、将用户分配给角色。支持
支持权限管理和控制?通常包括以下部分一种或几种:1. 数据库字段用户访问权限和控制;2. 微服务用户访问权限和控制;3. 前端显示和操作的用户访问权限和控制;4. 对数据表行进行访问控制管理;(4这条好像只有活字格产品支持了,但是好像并没有必要,开销很大)支持1、2、3三种情况;

整理撰写不易,希望对大家加深对低代码平台的理解,以及对开发低代码平台的同学有帮助。

四、低代码/无代码平台分类

研究了这么久,总结起来,低代码/无代码平台,大体分三类:

第一类:“业务人员”型

几个SaaS拼起来的(通常就是BI/工作流/表单/在线表格这几个场景),有权限和人员管理,适合业务人员直接使用的;(明道、简道、宜搭…)

第二类:“非代码生成”型

需要研发人员,在指定框架内开发,无法生成单独应用代码并独立部署的;(Zoho、Power Platform、活字格、轻流…)

第三类:“代码生成”型

需要研发人员,可以生成代码或多种框架代码,可以独立将单个应用导出并部署到其它平台或服务器上。(Mendix、iVX、轻舟、灵犀、odoo、无远、牛刀…)

如果值得需求,肯定需要选第三类的低码平台,前两类不具备语言属性,学习价值不大。如果平衡几个方面而言,整体情况大致如下:

产品名称平台功能产品整合技术性能存在问题
Mendix???????????1. 锁定用户,非源代码生成;2. 前端/数据库生成较弱;属于B端产品
iVX??????????????无明显问题,C端+B端产品
轻舟灵犀????????感觉很多功能和工具拼凑的产品
odoo?????????感觉更像是ERP的一个开发框架,C/S架构相对比较古老,性能一般
无远????????php后台,需要写SQL代码,前端才有一种自定义特殊结构,不常见框架
牛刀???????特殊小众的前端框架 维护相对差 很多问题长时间无法解决,无迭代

五、iVX和其它低代码平台相比的特点

首先看一下iVX的产品逻辑,具体如下:
在这里插入图片描述
那么iVX与和其它低代码平台相比有什么特点呢?

能够实习系统自举的,只有iVX

只有iVX平台的所有相关网站( ivx.cn 域名下的所有系统),包括公司内部各种系统(财务、OA、项目/任务管理、绩效、学院/课程/考试/题库、直播、客服/工单、考勤、文档、平台交易…),全部是通过iVX IDE自身开发的。这一点,所有其它低代码平台没法比。
说明了几个问题:1. iVX功能足够强大和完善,包括前端、后台和数据库所有部分;2. iVX开发出来的应用足够稳定(把药先临床用在自己身上);3. 反映出来,iVX对自身产品的足够自信。

iVX可以开发其它低代码平台

iVX可以把市场上的其它低代码平台,也用iVX开发出来一次,从能力结构上,和其它低代码产品并不在一层,没什么好比的。
市场上很多低代码平台,特别是aPaaS平台主要是由这四个场景的SaaS产品(BI作图、BPM工作流、在线表单、在线表格Excel)再加上用户和权限管理构成的。而这些应用iVX也有开发,并且免费提供给用户学习、使用和研究。(ivx.cn —> 应用商店)

只有iVX是编程语言,低代码平台中

由于iVX的灵活性(逻辑完备性),以及前端、后台、数据库的统一表达能力,使得iVX可以算是一门新的可视化的编程语言。具有下沉到C端用户的能力,任何人都可以培训和学习iVX,和Python Java等编程语言一样,作为独立编程语言而存在。其它低代码平台,由于功能限制,不具备语言属性,因此并不适合在C端广泛培训和推广,只作为B端产品而存在。

最强且免费

iVX应该是公认最强大的低代码平台之一,而且在互联网上使用,是完全免费的。不管是个人还是企业,都是免费的。
iVX认为,作为一种编程语言而存在,本身就不应该收费。

无码率可以接近100%,然后又支持代码嵌入

其实现在非常多的低代码平台都没有搞清楚和“代码”的关系,iVX在这方面作为明确的定义:iVX和代码的关系是“充分非必要”! 也就是说“不用代码啥都可以实现,所有的代码都可以用进来”,而且iVX生出来的代码,可以被别的代码直接使用。这就是低代码平台和代码应该有的“关系和定位”。
业内,能够做到这一点的应该也只有iVX了。

iVX操作流畅,浑然一体

现在很多平台看上去功能很多,实际上这些功能都是散的,功能都是堆叠上去的,会有操作过程繁琐、维护不易、交叉控制等各种问题。之所以会这样,有各种原因:
现在国内对于项目的开发,多数都是基于开源产品的拼接(大厂小厂类似),因此,难免很多功能用不上,很多功能重叠,不自然;
为了中标或后期添加,把很多功能都堆叠进入系统,使得系统越来越庞大,可用性下降;
产品设计,并没有经过深入验证和思考,大家互相抄;例如:用流程图的方式来实现逻辑,这个本身就很大局限,现在大家都这么做。(iVX采用了效率更高、扩展性更好的面板设计)
iVX经过十几年打造,几乎所有解决方案都是自己定制,虽然看上去开发年头长一点,但是产品内部显得协调和统一。一共也就5大窗口,最深1层弹窗,相比其它低代码平台设计上会好很多。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。