🐱 个人主页:不叫猫先生,公众号:前端舵手
🙋♂️ 作者简介:2022年度博客之星前端领域TOP 2,前端领域优质作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀!
💫优质专栏:vue3+vite+typeScript从入门到实践
📢 资料领取:前端进阶资料可以找我免费领取
🔥 摸鱼学习交流:我们的宗旨是在「工作中摸鱼,摸鱼中进步」,期待大佬一起来摸鱼(文末有我wx或者私信)。
一、低代码平台问题
最近研究了一堆低代码平台,重点放在“代码生成型”低代码上(也就是生成应用可以单独导出独立部署的那种),道理很简单aPaaS型(也就是几个SaaS+用户和权限管理这种)其实都差不多,用哪家好像都一样。
研究的“代码生成型”平台,国外有Mendix、Outsystems,国内有iVX、网易轻舟、浩鲸灵犀、无远、牛刀、活字格(严格上不算代码生成,后面发现)…
发现了一个重大问题,现在都把研发的重点放在了“功能的堆积上”!,好像招标的时候这个功能点也有、那个功能点也有,实际操作上完全不是那么一回事。包括国外的牛逼产品,要想做一个简单应用,要打开十多个不同的页面才能完成,有的几十个;有的封装成不同类型的子工具。国内就更不敢直视了,我重复一个小应用,光画个流程图,就把我累死,很简单流程来的。我不敢想象,如果复杂的应用,那么小一个画板如何装下那么复杂的流程?而且大概十几个不同的窗口,有些甚至需要点下去4、5层这个操作才完事儿。
总体来说,iVX应该是“产品整合能力”最好的,只有5个核心页面,最深1层,这才是IDE应该有的样子。另外我们看一下低代码的发展,具体如下图:
如果既满足语言的通用性,又能使语言尽可能简单、高校、利于人们快速学习?在这个问题里面,通用性(即语言属性)要求编程语言具有“完备的逻辑表达能力”,而越完备必定使语言设计越复杂;而另一方面,又要求语言“易于学习掌握”“快速编程”“代码量越低越好”。
iVX一直为找到这个问题的完美解决方案而努力,现阶段已经取得阶段性成果。基本上实现了“语言的完备性”和“无代码编程”的统一!
二、低代码平台评价方法、价值观、来龙去脉
低代码产品来源主要有三个渠道,如果不算广义的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文件,但是只能导入到自身平台环境运行
核心能力三:产品整合能力 ?
我研究过很多低代码产品,很多产品从“开源”魔改而来,“功能堆叠和拼接感”严重,看上去吧好像这个也有,那个也支持,但是用起来完全不是那么一会事儿。说白了就是“其实开发一个应用有可能比写代码还费劲”。从一个侧面反映就是,窗口数量众多、操作层级特别深、逻辑和管理混乱,有些逻辑控制甚至有多个入口。道理其实也很简单,现在无论大厂小厂要开发一个产品时,先就找对应的开源产品和框架,然后开始组装和拼接,但是其实开源产品可能设计初衷并不是为了“低代码”,而且拼接越多,整个产品就越笨重,越难以驾驭。
以下是我总结的低代码产品的基本评分项,并以 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看来后台是连接IaaS层资源的相对固定的模块,iVX已经编译成DLL,供大家免费下载)。
开发者通过iVX,编写前端的布局、交互逻辑,以及中台的业务逻辑,iVX会先生成AST抽象语法树,然后再根据AST生成对应的Javascript代码。如果是其它应用(例如微信小程序),会编译成对应的微信小程序原生代码。
iVX试图找出应用开发的最短路径,最大化提升开发效率,但是也不妨碍你将iVX用作你觉得合适的场景,例如辅助教学工具、原型开发工具、论文辅助开发工具、甚至产品原型工具。
注意,虽然iVX可以导出类似Javascript这样的代码,但是非常不建议开发者直接去修改这个代码本身,因为一旦修改之后,就再也无法导入到iVX的IDE系统进行二次开发了。
我们公司用的iVX,首先看一下iVX的产品逻辑,具体如下:
为什么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了。文章来源:https://www.toymoban.com/news/detail-450728.html
iVX操作流畅,浑然一体
现在很多平台看上去功能很多,实际上这些功能都是散的,功能都是堆叠上去的,会有操作过程繁琐、维护不易、交叉控制等各种问题。之所以会这样,有各种原因:
现在国内对于项目的开发,多数都是基于开源产品的拼接(大厂小厂类似),因此,难免很多功能用不上,很多功能重叠,不自然;为了中标或后期添加,把很多功能都堆叠进入系统,使得系统越来越庞大,可用性下降;产品设计,并没有经过深入验证和思考,大家互相抄;例如:用流程图的方式来实现逻辑,这个本身就很大局限,现在大家都这么做。(iVX采用了效率更高、扩展性更好的面板设计)。文章来源地址https://www.toymoban.com/news/detail-450728.html
到了这里,关于你真的了解低代码吗?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!