一、什么是低代码
首先,我们来看一下低代码的概念。在维基百科上,低代码是这样定义的,它的全称叫做低代码开发平台,它为开发者提供了一种创建应用软件的开发环境,可以通过图形化界面和参数配置的方式来代替传统的纯手工编程来创建应用软件。
从这段定义中,可以提炼出来几个关键信息:低代码平台本身也是一种软件,它可以为开发者提供一种创建应用软件的开发环境,它的性质就和我们平时使用的IDEA、VS等类似,都是服务于开发者的生产力工具。与传统的IDE不一样的是,低代码开发平台提供的是更加高效和易用的可视化IDE,用户可以通过图形化拖拽、参数配置这些方式来进行开发,只需要编写少量的代码。
低代码这个词最早在2014年的时候由世界头部分析机构Forrester在2014年提出,它当时对低代码的定义如图。它的这个定义更偏向于阐明低代码所带来的核心价值:
- 速度更快,能够实现业务应用的快速交付,不只是像传统开发平台一样能开发应用而已,它的重点是开发应用更“快”。
- 成本更低,能够降低业务应用的开发成本,代码的编写更少、环境的设置和部署成本也更简单。
根据上面低代码平台的定义,可以总结出低代码平台的核心能力:
- 可视化编程:在进行软件开发的时候支持支持图形化的拖拽和配置操作,二是开发完成后会有一个所见即所得的效果。
- 全生命周期管理:低代码支持应用的完整生命周期管理:从设计阶段开始,经历开发、测试、部署上线,甚至运维(监控告警)。
- 低代码扩展能力:能支持在必要时通过少量的代码对应用各层次的功能进行灵活扩展,比如添加自定义的控件、修改CSS样式等等。
我们知道软件开发本质是要解决一些业务问题,我们可以把整个软件开发的复杂度划分为业务复杂度和技术复杂度。其中业务复杂度指的是和业务要解决的特定问题强相关的部分,不能通过一些开发工具来解决。而技术复杂度指的是开发过程中和技术强相关的部分,这部分是低代码平台所擅长以及所要分担的部分,因此可以说低代码开发平台目地是分走一部分技术复杂度,为开发者尽可能屏蔽底层技术细节、减少不必要的技术复杂度和一些重复的劳动,让开发人员可以把更多的精力集中在解决业务问题上。
二、发展历史
接下来可以看一下低代码平台的发展历史。低代码的概念早在上个世纪80年代就有雏形,整个发展经历如图所示的几个阶段:第一阶段是探索期,美国一些公司开始在可视化编程方面进行一些探索,后来发展成了可视化编程语言。在2000年到2018年低代码平台处于一个发展期。标志性事件是在2018年,荷兰公司Mendix以7亿美元被西门子收购、美国低代码独角兽企业 Outsystem 获得1.5亿美元的融资,低代码平台进入资本的视野,后面开始迎来爆发期。
三、低代码 vs 零代码
除了低代码以外,还有一个名词称为零代码,零代码就是完全不需要写代码的应用开发平台,它可以认为是低代码的一个子集。零代码是不是就一定就比低代码更牛逼更先进呢?其实不一定,它只不过是一种更加极端的选择:完全的使用图像化开发方式,彻底消灭文本代码。这样选择的原因是:零代码开发平台期望能尽可能降低应用开发门槛,让完全不懂代码的运营、产品都能进行开发。
这里列出了低代码开发平台和零代码开发平台的一些区别:
- 面向人群:低代码开发平台还是有一部分的代码开发的,所以主要针对的还是开发人员,而零代码开发平台主要面向的是业务人员。
- 易用性:零代码开发平台不需要编写代码就可以开发应用,一般情况下零代码开发平台的易用性要高于低代码开发平台。
- 灵活性:低代码开发平台可以通过代码灵活定制与扩展功能,因此低代码开发平台灵活性要高于零代码开发平台。
- 应对复杂场景:零代码开发平台更加适合简单的场景,低代码开发平台应用场景更深一下,比零代码开发平台更适应复杂场景。
四、优缺点
低代码开发平台的优势
- 易用性:相比传统模式的纯代码开发,低代码只需要少量代码就能完成应用程序的开发,降低了开发门槛,更加易于上手。
- 高效性:低代码开发平台采用的是拖拉拽可视化进行搭建,通常搭建应用所需时间是传统方式所需时间一半甚至更少。
- 低成本:对使用者没有很高的技术要求,降低对专业研发人员的需要,人力成本比较低。开发速度快,降低时间成本。
同样的,低代码平台也有一些劣势:
- 灵活性差:传统的代码开发可以将软件定制化到想要的程度,低代码则依赖于平台中插件的内置功能,如果低代码平台没有提供某个功能,那么自己再进行二次开发成本很高 。
- 存在安全风险:使用低代码开发平台开发的软件严重依赖于低代码平台的提供方,没有办法完全控制数据安全性,也无法访问源代码,因此数据的安全程度不及传统的代码开发方式。
- 高耦合度:我们可以想一下,如果系统是通过带代码开发平台进行开发的,但是开发过程中或者后期进行功能的迭代升级的时候,如果某些功能低代码开发平台没有提供组件支持的的话,这个时候再转向使用其他开发平台的话,系统已经和这个平台高度耦合了,迁移成本将十分巨大,差不多需要重新开发了。
五、应用场景
根据低代码平台的特点,我们可以总结出低代码开发平台适合的应用场景。右侧是一个四象限的坐标轴,横轴是定制化的程度,纵轴代表系统的复杂度。低代码开发平台比较适合开发一些标准化程度高、前端界面比较简单的通用性软件,例如人事管理系统、会议管理、日程管理这些系统。
而对于具有一下特点的软件则不适合使用低代码开发平台进行开发:
- 对算法和复杂数据结构要求高的
- 对前端界面要求特别高的
- 大型互联网级应用
- 专业性很强的应用
接下来看一下纯代码开发、低代码开发、零代码开发等方式的主要适用人群。
纯代码开发的方式由于技术性要求比较高,因此适合于专业的开发人员。低代码开发平台已可视化的开发方式为主,代码开发为辅,主要针对专业的开发人员和一些业余的开发人员来使用。而零代码开发平台则是完全抛弃了代码开发,完全使用可视化的开发方式,因此对于无经验的开发人员也可以上手。
六、基本架构
接下来简单看一下低代码平台的基本架构,这部分我没有太深入的了解,其中包含了很多前端的知识,大家可以简单的看一下
低代码平台一般分为四个模块:物料堆(组件库)、主界面(配置画布)、编辑面板(配置项)、顶栏(全局/页面配置)
七、行业发展
根据艾瑞咨询去年发布的中国低代码行业报告显示,在2020年的时候,我国低代码的市场规模在15.9亿元,增速为80.2%。前几年的高增速和疫情的影响,预计在未来 5 年,行业整体的增长速度会放缓,但仍将维持 40%以上的增长速度。
自16年开始,低代码的概念开始在国内兴起,当年低代码相关的融资时间达到10起,到2020年,一共有59词融资事件,其中有13起资金超过亿元,并且每年的融资笔数呈现上升的趋势。2020年的时候C轮以前的融资占比为78.6%,相比2016年提升了28%,说明低代码市场整体处于发展初期,初创公司比较多。
接下来看一下国内外有哪些规模比较大的低代码开发厂商
国内的偏向于特定领域,做某些场景的通用型解决方案,走小而精的路线。如阿里的宜搭,服务后端同学,绕过前端快速建站,明道云则是基于表单模型,自动生成页面,简单高效。
国外的平台讲究大而全,搭建的是一个生态,涵盖数据模型,逻辑化编排,自定义语言,并不断打通与其他服务/app的通信,如微软的Power Platform 包括 Power BI、Power Apps 和 Power Automate 等强大组件,可与微软 Office 365、Dynamics 365、Azure 以及第三方应用程序无缝集成,为用户开发提供完整闭环。