低代码平台在现代软件开发中是如何演变的?
mhr18 2025-01-13 15:56 26 浏览 0 评论
低代码产品通过提供丰富的预构件、模板和用户友好的设计界面,使得软件开发不再局限于程序员,而是扩展到业务分析师、产品经理乃至最终用户。这种模式不仅提升了程序员的编程效率,还有效满足了To B产品的多样化业务需求。
低代码平台的演进历程,从早期的FileMaker、Microsoft Access,发展到现代的Salesforce和Django,展示了技术的不断进步。
低代码平台的应用领域广泛,包括快速应用开发(RAD)、业务流程自动化、数字化转型、企业内部应用(B2E)开发以及个性化客户体验的构建。
尽管低代码平台带来了诸多便利,但它也面临着可扩展性、处理高级场景的复杂性以及性能等方面的挑战。这些挑战揭示了低代码技术的未来发展方向,并对传统软件开发模式产生了深远的影响。
一、低代码产品分类
自2014年 Forrester 引入低代码开发平台概念以来,这一领域经历了显著的发展。低代码平台通过强调可视化方法和减少对传统编码的依赖,改变了应用程序开发的面貌。这些平台采用拖放式的可视化界面,加速开发流程,减少手工编码,旨在提升效率、促进协作,并简化代码以缩短开发周期。低代码平台赋予了不同技术背景的个体能力,使得即使是没有丰富编码知识的公民开发者也能创建出功能性应用程序。
低代码平台的类型多样,主要可以分为以下六类:
类型1:可视化界面,提供在线集成开发环境和编辑器,但可能需要额外的开发工作。
类型2:端到端服务,包括持续集成、部署和维护。
类型3:无需JS编码,允许用户不写JavaScript代码即可创建界面。
类型4:简化数据结构设计,支持在线设计具有CRUD(创建、读取、更新、删除)功能的数据结构。
类型5:简化前后端开发,优先考虑视觉编辑,可能牺牲一定灵活性,通常包括业务流程管理(BPM)、办公自动化系统(OA系统)和应用程序开发。
类型6:为成熟产品提供定制化服务,为定制需求提供量身定制的开发功能。
二、低代码平台的历史
在“低代码”这一术语出现之前,已有先驱平台在提高开发效率方面发挥了作用。以下是一些主要实例:
1、FileMaker
自1985年首次发布以来,FileMaker不断适应技术和用户需求的变化。从DOS程序发展到图形用户界面(GUI),并扩展了功能,使开发人员能够创建更广泛的应用程序。FileMaker 15(2016年)增强了对iBeacons的支持和与网络服务的连接。FileMaker 18(2019年)更名为Claris,专注于工作场所创新。FileMaker 19(2020年)重点改进了应用程序创建功能,增强了脚本用户界面设计和JavaScript集成支持。
2、Microsoft Access
1992年发布的Microsoft Access是一款非传统的低代码关系数据库管理系统(DBMS)。它的用户友好界面和GUI简化了表格、查询、表单和报告的设计。作为DBMS,它支持表格关系,确保数据完整性,并允许用户使用SQL进行高效数据处理。虽然Access不完全是一个低代码平台,但它通过创建自定义表单、报表和界面,帮助应用程序开发,实现数据管理和展示。
3、甲骨文 APEX (2004年)
Oracle Application Express(APEX)是甲骨文公司于2004年推出的企业级低代码应用程序开发平台。APEX允许开发人员通过基于向导的页面生成方法,减少手动编码,创建Web和移动应用程序。这一功能简化了开发过程,但在灵活性方面可能有所限制,因为向导驱动的模板可能具有预定义的结构和选项,限制了自定义功能。
4、Visual Basic 6.0
Microsoft Visual Basic 6.0于1998年推出,并集成到Visual Studio中,标志着编程领域的一个重要时刻。它使开发人员能够创建具有高级功能的应用程序,包括基于网络的应用程序。尽管Visual Basic 6.0已于2008年正式报废,但其对应用程序开发的持久影响因其强大功能和对编程发展的贡献而得到认可。
三、低代码平台能解决什么问题?
低代码平台提供了应对各种挑战的解决方案。虽然专业开发人员可能认为它们不适合处理复杂任务,而新手可能将其视为应用程序开发的捷径,但这些观点都未能充分认识到低代码平台的真正潜力。
在“神话人月”中,软件开发被划分为两项主要任务:
- 主要任务是构建代表抽象软件实体的复杂概念结构。
- 次要任务涉及使用编程语言来表达这些实体,并将它们映射到机器语言中,同时遵循空间和时间的约束。
所谓的“基本任务”是指那些无论如何处理都无法简化或降低复杂性的核心问题。例如,在开发工资单软件时,计算所得税是一项基本任务,因为无论使用何种编程语言或算法,其复杂性都是固有的。而“次要任务”则涉及核心问题的附属方面,其实施和复杂程度可以根据不同的实现方式而变化。例如,选择使用哪种编程语言或构建算法的方式都属于次要任务,它们不会改变问题的基本复杂性,如需要单独处理的税级数量。
“根本任务”无法通过技术手段解决,因为它本身就是需求;唯一的解决方案是减少需求。而低代码平台则专注于通过简化功能的实现来解决“次要任务”。
低代码平台通过提供实现类似功能的简化方法来简化“次要任务”,具体包括:
1、类似Excel公式的简化DSL(领域特定语言),使得用户能够以更直观的方式表达逻辑。
2、图形化代码编辑器,如虚幻引擎的“蓝图”或Blockly/Scratch的拼图方法,使得非专业开发者也能构建应用程序。
3、支持编程或使用外部API,以扩展平台的功能。
4、提供内置实现,例如自动计算个人所得税的功能。
值得注意的是,DSL方法由于缺乏复杂的逻辑控制和预定义功能,更适合简单的应用场景。对于更高级的功能,建议使用如JavaScript或Lua等成熟语言,而不是扩展DSL功能。
四、用户在使用低代码平台时面临的挑战
用户在使用低代码平台在提升开发效率的同时,也带来了一系列挑战,包括可扩展性问题、处理高级场景的复杂性以及性能问题。
1、平台依赖其内部框架,这增加了额外的学习成本,因为用户需要熟悉平台特定的操作和规范。
2、平台的不透明性给深入了解内部实现、寻求错误支持和等待升级带来了挑战。用户往往需要等待平台的预定升级来满足特定需求,这种依赖性限制了灵活性。
3、跨界面信息的分散性使得全局搜索不如本地编码方便,影响了开发效率。
4、平台提供的有限环境阻碍了协作,给复杂的分支机构管理带来了挑战,尤其是在需要团队协作的大型项目中。
5、平台未来发展的不确定性引发了人们对平台可能关闭的担忧。例如,谷歌App Maker的关闭就给用户带来了困扰,由于缺乏导出功能,用户不得不独立重新创建项目。
低代码平台不开源的原因主要有两个:
1、实现低代码功能需要隐藏复杂的技术细节,这些细节往往依赖于平台的底层框架和编辑器。这些低代码技术的核心组成部分无法开源,因为开源可能会暴露这些复杂性,从而削弱低代码平台的易用性。
2、存在商业矛盾:如果平台易于被用户修改并在任何地方部署,它将转变为一个离线开发工具,这会削弱平台的商业可行性。因为这样会导致一个账户能生成无数的应用,阻碍了平台的有效商业化和收入模式。
五、前端开发中的低代码
前端开发的核心任务集中在界面制作、交互管理和业务逻辑实施上。回顾二十年前,可视化编辑工具如FrontPage和Dreamweaver曾试图简化这一过程,但它们生成的代码往往难以与手工编码的精细度和灵活性相媲美。随着前端重构技术的发展,开发人员为了获得更高的控制能力和效率,逐渐回归到手工编码。
当前,可视化编辑工具主要用于创建静态原型、官方网站和登陆页面。在需要频繁进行前端和后端交互的页面中,由于动态数据显示的复杂性,这些工具并不常见。
因此,为了提升界面开发的效率,开发者依赖于已经存在多年的用户界面组件库。以下是一些主要的用户界面组件库类别:
1、CSS扩展:
如Sass、Less、Tailwind、CSS模块等,它们允许开发者以更高级的方式编写样式,使代码更加模块化和可维护。
2、行为库/无头组件(Headless):
如HeadlessUI、Radix、React Aria等,这些库专注于组件的行为而非外观,使得开发者可以构建可访问性更强的界面。
3、样式系统:
如Tailwind UI、DaisyUI等,提供了一套内置的外观和行为选项,开发者可以根据需要选择使用。
4、组件库:
如Material UI、Ant Design、Mantine等,这些库提供了丰富的预制组件,每个库都有其独特的实现方式,开发者需要学习如何与它们协同工作。(Theo认为Chakra UI是一个特别的存在,它接近于我们理想中的前端开发目标。)
六、后端开发中的低代码
在系统开发中,我们经常面临一些核心问题,其中包括:
1、登录、账户/角色和权限管理:
这些是确保应用程序安全性和用户个性化体验的关键组成部分。
2、提供一个对开发者友好的操作环境:
一个良好的开发环境可以提高开发效率,减少错误,并促进更好的代码管理。
在应用程序开发中实现基本的CRUD操作(创建、读取、更新、删除)时,有三种常用方法:
1、基于表单的方法
- 优点:操作简单直观,只需设计表单即可快速实现基本功能。
- 缺点:灵活性有限,对于复杂的数据关系和业务逻辑支持不足。
2、数据模型方法
- 优点:通过精确定义数据模型,可以获得更高的灵活性和扩展性。
- 缺点:易用性较低,需要开发者具备数据模型的知识,对于非技术背景的用户来说成本较高。
3、BaaS(Backend as a Service)服务,例如Parse
- 优势:为用户提供了友好的应用程序接口,特别是在用户管理和数据访问方面。
- 缺点:虽然需要一定的后台代码支持,但提供了高度的灵活性和可定制性。
合理有效地运用低代码工具,不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。比如我司正在用的低代码平台:织信Informat,这个平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、OA、项目、企业服务等多个应用场景,全面助力企业落地数字化转型战略目标。
不管说得再天花乱坠,都不能代替产品本身,好产品,值得大家切身体验。
相关推荐
- 甲骨文签署多项大型云协议,其一未来可贡献超300亿美元年收入
-
IT之家7月1日消息,根据甲骨文Oracle当地时间6月30日向美国证券交易委员会(SEC)递交的FORM8-K文件,该企业在始于2025年6月1日的202...
- 甲骨文获TEMU巨额合同,后者大部分基础设施将迁移至Oracle云
-
IT之家6月23日消息,Oracle甲骨文创始人、董事长兼首席技术官LarryEllison(拉里埃里森)在本月早些时候的2025财年第四财季和全财年财报电话会议上表示,Oracle...
- Spring Boot 自定义数据源设置,这些坑你踩过吗?
-
你在使用SpringBoot进行后端开发的过程中,是不是也遇到过这样的问题:项目上线后,数据库连接总是不稳定,偶尔还会出现数据读取缓慢的情况,严重影响了用户体验。经过排查,发现很大一部分原因竟然...
- 一个开箱即用的代码生成器(一个开箱即用的代码生成器是什么)
-
今天给大家推荐一个好用的代码生成器,名为renren-generator,该项目附带前端页面,可以很方便的选择我们所需要生成代码的表。首先我们通过git工具克隆下来代码(地址见文末),导入idea。...
- 低代码建模平台-数据挖掘平台(低代码平台的实现方式)
-
现在来看一下数据连接。·这里是管理数据连接的空间,点击这里可以新增一个数据连接。·输入连接名称,然后输入url,是通过gdbc的方式去连接的数据库,目前是支持mysql、oracle以及国产数据库达梦...
- navicat 17.2.7连接oracle数据库提示加载oracle库失败
-
系统:macOS15.5navicat版本:navicatpremiumlite17.2.7连接oracle测试报错:加载oracle库失败【解决办法】:放达里面找到程序,显示简介里面勾选“使...
- 开源“Windows”ReactOS更新:支持全屏应用
-
IT之家6月17日消息,ReactOS团队昨日(6月16日)在X平台发布系列推文,公布了该系统的最新进展,包括升级Explorer组件,支持全屏应用,从Wine项目引入了...
- SSL 推出采用全模拟内置混音技术的模拟调音台Oracle
-
英国调音台传奇品牌SolidStateLogic宣布推出Oracle——一款采用全模拟内置混音技术的调音台,在紧凑的AWS尺寸机箱内集成了大型调音台的功能。该调音台提供24输入和...
- 47道网络工程师常见面试题,看看有没有你不会的!
-
你们好,我的网工朋友。网络工程师面试的时候,都会被问到什么?这个问题其实很泛,一般来说,你肯定要先看明白岗位需求写的是什么。基本上都是围绕公司需要的业务去问的。但不可否认的是,那些最基础的概念,多少也...
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
-
e公司讯,从汉得信息获悉,近日,微软官方宣布InternetExplorer桌面应用程序将于2022年6月15日正式停用。目前大部分客户都是使用IE浏览器打开EBS的Form界面,IE停用后,只能使...
- 36.9K star ! 推荐一个酷炫低代码开发平台!功能太强!
-
前言最近在逛github,看看能不能搜罗到一些对自己有帮助的开源软件。不经意间看到一个高star的java开源项目:jeecg-boot。进入在线演示版一看,感叹实在是太牛了!此开源项目不管是给来学习...
- Linux新手入门系列:Linux下jdk安装配置
-
本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...
- 手把手教你在嵌入式设备中使用SQLite3
-
摘要:数据库是用来存储和管理数据的专用软件,使得管理数据更加安全,方便和高效。数据库对数据的管理的基本单位是表(table),在嵌入式linux中有时候它也需要用到数据库,听起来好难,其实就是几个函数...
- JAVA语言基础(java语言基础知识)
-
一、计算机的基本概念什么是计算机?计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行、自动高速处理海量数据的现代化智能电子设备。由硬件和软件组成、没有安装过任何软件的计算机称...
- 再见 Navicat!一款开源的 Web 数据库管理工具!
-
大家好,我是Java陈序员。在日常的开发工作中,常常需要与各种数据库打交道。而为了提高工作效率,常常会使用一些可视化工具进行操作数据库。今天,给大家介绍一款开源的数据库管理工具,无需下载安装软件,基...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 甲骨文签署多项大型云协议,其一未来可贡献超300亿美元年收入
- 甲骨文获TEMU巨额合同,后者大部分基础设施将迁移至Oracle云
- Spring Boot 自定义数据源设置,这些坑你踩过吗?
- 一个开箱即用的代码生成器(一个开箱即用的代码生成器是什么)
- 低代码建模平台-数据挖掘平台(低代码平台的实现方式)
- navicat 17.2.7连接oracle数据库提示加载oracle库失败
- 开源“Windows”ReactOS更新:支持全屏应用
- SSL 推出采用全模拟内置混音技术的模拟调音台Oracle
- 47道网络工程师常见面试题,看看有没有你不会的!
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle 空为0 (51)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)