低代码为什么需要专业代码
市面上有众多的低代码平台,它们的用途、定价和目标客户各不相同。对于企业来说,选择一款低代码开发平台代替可靠的传统专业代码开发,总是担心存在风险,具有专业代码能力的牛刀专业低代码平台,对企业复杂和大型应用提供的近乎无限的支持能力,可以从根本上消除这种风险。
在本文中,我们从场景和技术两个维度来看,在实际开发过程中,对低代码平台在专业代码开发能力方面的需求:
1. 场景维度
所有的信息管理类应用,无论是办公类的、业务类的、还是生产类的,都是以数据为核心的信息处理软件。
数据的输入,大体上可以分为手工录入和自动采集两种方式。手工录入就是通过各种表单由人工录入,例如:报销单、采购单、出库单等。自动采集指通过接口由外部输入的数据,例如:来自 IOT 设备的数据、来自其他应用系统的数据等。
信息管理类应用的核心是数据,但是数据的输入只是入口,更重要的是基于输入的数据进行处理和分析,所产生的结果为企业的生产经营带来巨大的价值。例如:基于工作流进行数据协同提高办公效率,基于订单、库存、物料和生产线数据进行合理的排产优化,基于设备监控数据进行预警避免生产事故等。
所以,所有的低代码平台在设计上,重点围绕数据的处理,提供各种模型和组件的设计工具。像一般的数据增删改查,数据之间的关联计算和统计,都可以通过配置的方式,无需代码即可快速实现。
另外,面向企业应用场景的低代码平台,还会提供门户、组织权限、工作流等其他业务中间件,让用户可以快速搭建企业应用架构。
1.1. 能支持复杂业务逻辑计算场景
低代码平台针对一般的数据增删改查和数据关联计算处理,提供了模型和组件,可以通过配置在无代码的条件下快速实现。但是一旦遇到复杂业务逻辑计算场景,低代码就无法满足,必须通过专业代码编程来实现。
(1)出库场景
入出库是非常常见的业务场景,办公用品、设备资产、物料、成品等等都会有入出库管理。
如果是非批次的库存管理,出库的时候只是在库存表找到对应的一行库存数据做核减,当库存不够的时候做提示,这个一般低代码都是可以通过配置实现的。
但是在真实业务场景中,物料和成品的库存大多都会采用批次管理,采用先进先出的批次库存算法。这时候每个物料的出库,都会对应多行批次库存数据,按照先进先出算法依次进行核减计算。这时候还要考虑算法优化、并发操作和分布式事务等问题,低代码靠配置是无法实现的,只能通过专业代码编程来实现。
(2)排产场景
排产是制造业信息化中常见的业务场景,需要根据订单、物流、生产线的数据,进行排产计算。这里还会涉及到多种算法:按照最短工期的排程、按照交货期先后排程、按照工期和交货期之间的距离排程、按照重要度排程。很明显也是必须要通过代码编程来实现的。
(3)集成场景
业务系统与其他第三方系统之间会有非常多的集成需求场景,如果是简单的接口调用,低代码平台都会提供相应的组件来支持。但是一旦涉及到多个接口的逻辑编排调用,或者在接口调用前后要做数据的转换计算处理,都是需要通过专业代码来实现的。
大多数低代码平台只提供了前端的脚本编程能力,但是复杂业务逻辑计算明显是不适合在前端的。前端脚本的执行效率低,调用外部接口会有浏览器跨域问题和安全限制,无法保证事务完整性等等,这些技术限制都要求复杂业务算法必须在后端通过专业编程来实现。
牛刀专业低代码开发平台提供了服务建模的设计工具,支持开发者基于主流的 Java SpringBoot 后端编程框架进行专业编程调试,支持 Eclipse、IDEA 等专业编程工具,对接主流技术生态,可以支持所有复杂业务逻辑计算场景。
1.2. 能支持个性化业务场景
低代码平台针对一般的数据类表单场景,提供表格、树形、主从、卡片等多种表单的设计模板,可以快速生成。提供输入框、单选、多选、附件、图表、富文本等组件,支持用户基于可设计设计工具,拖拽定制表单。但是遇到个性化的页面场景,低代码的设计器就无法满足。
地铁运行监控示例
物联网车载大气监测示例
上面的两个示例就是典型的个性化业务场景,很明显是无法通过低代码可视化设计利用现有的模板和组件来实现的。
这时候,多数低代码工具会支持自定义表单的能力,即这个页面可以完全用原生前端 HTML 编程来做扩展。但是,这种方式下的原生编程,已经再无法利用低代码的组件高效开发,还要适配低代码提供的各种接口和规范,基于低代码的原生编程复杂度比真正的原生编程还高。
牛刀专业低代码平台在前端提供了高度自由的可视化设计工具,页面不局限于一般的表单场景,用户可以基于可视化设计工具自由定制,编程扩展。
地铁运行监控示例-设计时
在地铁运行监控示例中,基于牛刀专业低代码平台的组件开发扩展能力,百度地铁图组件封装了来自百度的地铁图框架(https://lbsyun.baidu.com/index.php?title=subway)。基于扩展的百度地铁图组件,上面这个示例完全用组件拖拽可视化设计工具配置实现。
物联网车载大气监测示例-设计时
在物联网车载大气监测示例中,界面整体是通过低代码可视化设计来布局实现的,但是背后的地图通过代码引入了高德地图,并通过高德地图 API 的调用实现了地图上车辆位置的标注和交互。
通过代码引入高德地图示例
也就是说即使是非常个性化的表单,需要引入第三方框架的时候,在牛刀专业低代码平台中,对于复用度高的代码可以封装成组件,复用度低的可以直接在页面上通过 Javascript 编程来扩展。而这些实现都是在可视化设计基础之上的,并不是完全抛弃了低代码的可视化设计能力。相对于基于原生开发去重新开发,开发的代码量和工作量大大降低。
所以,牛刀专业低代码平台不仅适用于一般信息管理类应用软件的设计,也适用于 IOT 物联网应用和工业互联网应用的设计,下面是用户在牛刀专业低代码平台之上扩展了物联网组件后,应用于工业应用设计的实际效果。
工业物联网示例 1-设计时
工业物联网示例 1-运行时
工业物联网示例 2-设计时
工业物联网示例 2-运行时
工业物联网示例 3-设计时
工业物联网示例 3-运行时
2. 技术维度
2.1. 能基于源码编程调试
大多数低代码平台对于开发者来说都是黑盒子,开发者看不到低代码运行背后的前后端源码。当系统在运行过程中出现异常、缺陷或者性能问题时,开发者无法进行跟踪、调试和问题定位。
牛刀专业低代码平台,采用白盒设计原则,低代码背后生成专业框架源码,对开发者完全开放,开发者可以跟踪调试每一行前后端源码。
2.2. 支持低代码和专业代码双向开发
低代码平台的模型和组件设计能力再强,也会有其局限性。当遇到低代码无法满足的业务场景,一定是需要专业代码开发才能实现的。
这时候如果专业代码开发是完全脱离低代码设计工具的,开发人员就完全无法利用低代码现有的组件和设计工具,还受限于低代码平台提供的规范和接口,又不能集成调试,开发的复杂度比纯专业开发还高。
牛刀专业低代码平台,实现了低代码与专业代码的双向开放模式,开发者可以在低代码设计工具中,在可视化设计的同时进行前后端专业代码开发。专业代码是低代码的扩展,而不是完全独立的。
开发者在统一的设计环境中进行编程扩展调试,实现了低代码开发与专业代码开发的有机融合。
2.3. 支持组件开发扩展
低代码平台提供的设计组件总是有限的,当用户遇到现有组件无法满足的场景,就需要对低代码平台的组件进行扩展。
有些低代码平台是完全封闭的,不支持扩展组件。或者有些低代码平台,支持组件扩展,提供了组件开发框架和开发规范。但是仅提供这些是不够的,组件是需要有生命周期管理的,组件的开发、调试、发布、更新、版本、引用、升级、依赖都需要有配套工具,用户才能对组件进行持续迭代,形成自有的业务组件库。
牛刀专业低代码平台,内置了组件的开发和调试工具,并且内置了私有的组件市场。支持用户自定义组件分类,对组件的发布、更新、版本、引用、升级等进行自助管理。
2.4. 对接主流技术生态
大多数低代码开发平台由于前后端技术不开放,导致开发者在开发扩展过程中,不能对接主流技术生态,借助开源世界中已有的现成组件和框架进行扩展。
牛刀专业低代码平台,应用前后端都采用主流技术栈和基础技术框架,后端 Java SpringBoot,前端 React + AntDesign/Vant(后续版本会同时支持 VUE)。应用前后端源码和组件源码全部对开发者开放,支持开发者在主流技术生态下,自由引入第三方框架和类库进行专业开发扩展。
2.5. 支持专业编程工具
大多数低代码开发平台都只提供了基于浏览器的设计环境,或者是自己封装的 IDE 工具。对于专业开发者来说,不能使用习惯的专业 IDE 环境,例如:IDEA 或 Eclipse 等,会大大影响开发效率。
牛刀专业低代码平台,同时支持云端 Web IDE 和本地 IDE 两种开发模式,两种模式可以随时无缝切换。在本地 IDE 开发模式下,所有的前后端源码全部下载到开发者的桌面端,自动建立本地和云端协同的开发环境(让本地 IDE 在代码中可以访问云端的数据库和其他微服务),开发者可以使用熟悉的 IDEA 或 Eclipse 等专业 IDE 工具进行专业代码编程调试。
2.6. 支持专业团队协作
作为开发平台,开发团队的多人协作是必然需求,但是大多数低代码都是不支持的,或者是有限支持的。
在技术上大多数低代码平台的设计源码都采用了数据库作为存储介质,这时候像源代码的版本管理、分支管理、多人协作的提交更新、代码回滚就完全无法实现。如果是小团队小项目还不会有什么问题,但是如果是多项目多团队,大规模长期使用就完全不适合了。
牛刀专业低代码平台,所有可视化设计背后的源码全部采用标准的文件存储。平台的源码大体上分为两类,一类是模型文件,采用 XML 文件作为存储,这些模型文件是可读的,也是可以直接编辑的,即可视化设计和背后的源码是支持双向编辑的;另一类就是代码文件,后端就是 java,前端就是 js 和 css。
所以牛刀专业低代码平台内置了专业的 Git 版本管理和协作机制(私有化部署的 Gitlab 或对接客户已有的 Git 仓库),支持多项目多团队的专业协作开发。
2.7. 应用能脱离平台部署运行
大多数低代码平台由于技术封闭性,所开发的应用只能运行在其基座环境之上,脱离平台无法运行。
牛刀专业低代码平台,支持应用完全脱离平台运行,部署到独立的主机或集群环境中。
2.8. 支持云原生架构
以 Docker、Kubernetes、ServiceMesh 为核心的云原生技术架构已经成为企业 IT 数字化的基础技术架构。
大多数低代码开发平台还是传统的单体技术架构。虽然有部分低代码开发平台采用了微服务架构,但是并不是基于云原生技术架构的。所谓的可以支持容器化部署,跟基于云原生技术架构,完全是两回事。
牛刀专业低代码平台,一方面提供专业的低代码开发工具,另一方面真正基于云原生技术架构,实现了应用从设计、开发到发布、部署、运维的 DevOps 一体化研发管理平台,提供全生命周期的敏捷研发流水线管理,全面提升大中型企业客户的应用软件研发效率。
牛刀专业低代码平台支持真正的多租户应用资源隔离,支持多项目多团队统一研发协作。为大规模多项目多团队研发协作,提供统一的开发环境,统一的技术框架,统一的技术规范,统一的设计工具,统一的代码管控,统一的 CI/CD 流水线,统一的部署运维管理。
并且由于牛刀专业低代码平台的高度开放性,用户真正自主可控,保障企业客户数字化建设的可持续发展。
3. 专业代码释放低代码的力量
在牛刀专业低代码平台中,非常强调二八原则,百分之八十的业务场景都是可以通过可视化的模型和组件来配置实现的。但是剩下的百分之二十,复杂业务逻辑和个性化业务场景,我们希望开发者可以在低代码设计工具的基础上来通过专业编程扩展实现,而不是让开发者完全从头用原生开发。
对于普通开发者,基于牛刀专业低代码平台提供的模型可视化设计,大多数常见业务场景,无需代码就可以配置实现。
对于专业开发者,牛刀专业低代码平台在提升了开发效率的同时,又完整保留了专业开发的灵活性和自由度。
相关文章链接:
评论