低代码、纯代码和无代码的区别与联系

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

低代码、纯代码和无代码的区别与联系

目前,关于低代码、纯代码和无代码之间的关系,业界一直存在着各种争论。因此,本文将从定义、技术特征、开发者、应用场景和经济性论述三者之间的区别与联系,厘清三者之间的关系。


从定义看三者的区别与联系


广义的“低代码”(Low-Code)概念于2014年由Forrester首次正式提出,定义为:能够以“最少的手写代码”和设置快速开发应用、配置和部署业务应用程序。“纯代码”(Pro-Code)定义为:传统的以“全程手写代码”为中心的开发模式。“无代码”(No-Code)定义为:在可视化界面中,通过拖拉拽代码模块,“无需手写代码”直接搭建应用系统。从定义可以看出,如果假定纯代码的开发代码量是100,那么无代码的开发代码量就是0,三者之间的关系可表述为下面公式所示:


广义的低代码=无代码× X% + 纯代码× (1-X%)


其中,X(0≤X≤100)代表了可复用的“数字化资产”满足业务需求的程度。X值越大,数字化资产满足业务需求的程度越高,但同时,代码灵活性会被削弱。当X=0时,就是纯代码;0<x<100时,就是“狭义的低代码”;当x=100时,就是无代码。


从技术特征看三者的区别与联系

1.纯代码的技术特征

纯代码的开发方法是模型驱动,采用“全程手写代码”的方式搭建应用系统,代码不会自动生成,因此不依赖开发平台的可复用“数字化资产”,编码灵活性高、定制性强、应用的可移植性强。开发者可以根据自己的偏好编写代码,可编程能力强,但要求开发者对核心编码的逻辑有相当深入的理解。由于开发者能力不同,会导致编码的标准化程度低,用户操作体验不一致,错误率偏高。


另外,开发者还需要自建部署和运维环境,整个应用的BizDevOps一体化过程相当复杂,对开发者的技术要求很高。


2.无代码的技术特征

无代码的开发方法是表单驱动,在可视化界面中,通过拖拉拽代码模块,“无需手写代码”的方式搭建应用系统。100%的代码由平台自动生成,可以消灭所有繁琐和重复的样板代码(Boilerplate Code),因此对开发平台的可复用“数字化资产”依赖程度非常高。平台不会提供编程扩展接口,源码无法进行客户化编辑,编码的灵活性和定制性完全取决于平台提供的“数字化资产”数量和质量。应用的可移植性也依赖aPaaS平台的功能,存在非常强的制约。开发者不可以编写代码,因此不需要开发者理解编码的基本逻辑。但由于100%的代码由平台自动生成,因此编码的标准化程度非常高,用户操作体验一致,错误率极低。另外,开发者通过aPaaS平台,直接在云端完成整个应用的BizDevOps一体化过程,完全不需要专业技术人员的参与,整个过程所见即所得,对开发者基本没有技术要求。


3.低代码的技术特征

低代码的开发方法是模型驱动和表单驱动并存,开发模式以“最少的手写代码”的方式搭建应用系统。80%以上的代码由平台自动生成,可以消灭绝大部分繁琐和重复的样板代码,因此对开发平台的可复用“数字化资产”依赖程度较高。


另外,平台会提供编程扩展接口,方便开发者导出导入源码进行客户化编辑,依赖开发平台提供的可复用的“数字化资产”,编码的灵活性和定制性较高,应用的可移植性依赖aPaaS平台的功能,存在一定的制约。


开发者可根据自己的偏好改写部分代码,可编程能力较强,这就要求开发者对编码的基本逻辑有比较深入的理解。但由于开发者只能改动部分代码,因此80%以上的编码的标准化程度较高,用户操作体验较为一致,错误率也控制在改写的编码范围内。


另外,开发者通过aPaaS平台,直接在云端完成整个应用的BizDevOps一体化过程,可以不需要专业技术人员的参与,降低了对开发者的技术要求。


4.技术特征的区别与联系

虽然上述三者在技术上存在很大的区别,但从软件开发技术演进过程中的角度看,低代码处于纯代码与无代码中间的阶段,既能够降低纯代码的技术门槛,同时也能通过编程扩展接口,提供客户化的编码功能。通过aPaaS平台实现应用的BizDevOps一体化过程,显著降低了对开发者的技术要求。


从目标开发者看三者的区别与联系

1.纯代码的目标开发者

纯代码对开发者的技术要求很高,因此需要“专业开发者”(Professional Developers),指服务于专业IT部门的IT技术人员,包含程序员、项目经理、实施顾问等。整个开发过程中,所有的业务和技术的复杂度都由“专业开发者”全程负责。


2.无代码的目标开发者

无代码对开发者基本没有技术要求,因此只需要“公民开发者”(Citizen Developers),指来自财务、销售、运作等业务部门,本职工作与IT无关,但参与到软件开发中的业务开发者,完全可以独立或在技术人员的指导下开发出更符合业务需求的轻量化应用,扩大了应用开发劳动力,实现了应用程序开发的民主化。整个开发过程中,所有的业务复杂度由“公民开发者”负责,而所有的技术复杂度则由“低代码平台”负责。


3.低代码的目标开发者

低代码兼具了无代码和纯代码的技术特点,因此需要“专业开发者和公民开发者的融合团队”,指由专业IT技术人员和业务开发者组成的团队,目的在于提升应用开发的整体效率。


公民开发者负责更贴近业务的、相对简单的无代码开发工作,让专业开发者更专注于技术性强、难度大的纯代码开发工作。整个开发过程中,所有的业务复杂度由“公民开发者”负责,客户化代码的技术复杂度则由“专业开发者”负责,样板代码的技术复杂度则由“低代码平台”负责。


4.目标开发者的区别与联系

虽然上述三者在目标开发者上存在一定区别,但从应用的BizDevOps一体化角度看,低代码的目标开发者囊括了纯代码与无代码的目标开发者,其优势在于:可以将开发工作进行了重新划分,将原本“专业开发者”的工作分成三个部分,分别由“低代码平台”“公民开发者”和“专业开发者”分别负责,在扩大应用开发劳动力的同时,也能有效发挥、整合各自的专业优势。


从应用场景看三者的区别与联系

1.纯代码的应用场景

纯代码的编码灵活性高,开发者专业化程度高,因此,纯代码开发在各行业领域下通用,没有特别的限制,尤其是针对复杂的、个性化的业务决策层应用,如业务逻辑复杂、安全性要求高的领域,是纯代码最擅长的领域。


2.无代码的应用场景

无代码的编码灵活性完全取决于平台提供的“数字化资产”数量和质量,开发者都是公民开发者,实际应用中,每个无代码平台都有各自的领域特色,直接决定了无代码开发只能专注个别领域,尤其是针对简单的、通用的、轻量化的业务执行层应用,如表单、视图、统计、角色权限、报表、流程管理,是无代码开发最擅长的领域。


3.低代码的应用场景

低代码兼具了无代码和纯代码的技术特点,开发者是“专业开发者和公民开发者的融合团队”,因此,低代码平台具备专业领域通用的特点,尤其是针对不太复杂的业务管理层应用,如供应链管理系统、客户与订单管理系统、线上商城、OA、CRM等,是低代码开发最擅长的领域。


4.应用场景的区别与联系

虽然上述三者在应用场景上存在一定区别,但是从各自擅长的领域来看,决策层应用适合纯代码开发,管理层应用适合低代码开发,执行层适合无代码开发,各有所长,互为补充。越简单的应用,越契合低代码和无代码;越复杂的应用,越契合纯代码。


同时,由于低代码、无代码的应用更偏企业中、集层,而这些应用的需求量最大,所以可以得出如下判断:低代码能够适用于大部分业务场景,如B2E类、B2B类和B2C类应用。


从经济性看三者的区别与联系

1.纯代码的经济性

从纯代码的专业的技术特征可以得出,纯代码开发的工作量相对最大,交付最慢,软件开发周期最长,可达数月甚至数年,总开发成本最高,从几百万元到几千万元不等。


2.无代码的经济性

从无代码的专业的技术特征可以得出,纯代码开发的工作量相对最小,交付最快,软件开发周期最短,按分钟小时计,总开发成本最低,部分小范围的轻量级应用的成本接近于0。


3.低代码的经济性

从无代码的专业的技术特征可以得出,低代码开发的工作量适中,交付较快,软件开发周期较短,总开发成本最低。调研表明,使用低代码搭建业务逻辑简单的基础应用和初级业务系统平均仅需1周,搭建业务逻辑较复杂的初级工业系统仅需1~2周,大幅缩短开发时间。100人的研发团队通过低代码开发应用,平均1年缩短应用开发时间92天,总节约成本20~35万元。


4.经济性的区别与联系

虽然上述三者在经济性上存在较大的区别,但因为各自的应用场景不同,因此不能简单地认为经济性越好,对应的开发方法就越好。最重要的是要将三者有机整合,在满足需求的基础上,发挥各自在经济上的优势,使应用开发整体的经济性最优。


结语

本文从定义、技术特征、目标开发者、应用场景和经济性五个方面,分析了低代码、纯代码和无代码的区别和联系,认为在选择代码开发方式时,要综合考虑以下因素。


首先,考虑应用场景。比如针对复杂度高、客户化强的应用,必须以纯代码的开发方式为主,兼顾低代码或无代码的开发方式。其次,考虑经济性。在满足应用场景要求的前提下,哪种方式的经济指标越好,越应该优先采用。最后,再综合考虑技术特征和开发者的因素。


总之,纯代码、低代码和无代码不是相互替代的关系,而是各有优势,互为补充的关系。实际应用中,要根据应用场景的要求,取长补短,有效组合,发挥各自的优势。




低代码、纯代码和无代码的区别与联系

目前,关于低代码、纯代码和无代码之间的关系,业界一直存在着各种争论。因此,本文将从定义、技术特征、开发者、应用场景和经济性论述三者...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息