本文主要阐述低代码的概念,介绍目前主流的低代码平台,总结低代码平台的典型特征、存在优势以及未来发展趋势。并站在程序员的角度,分析如何在已经到来的低代码战争中,找到自己的定位,一展所长。
什么是低代码?
低代码(Low-Code)一词最早由Forrester在2014年提出,通过少量代码就可以快速生成应用程序的开发平台。这类平台面向的是IT专家或者平民程序员,以快速交付应用程序为目的,解决传统软件开发模式带来的周期长、成本高等问题。
低代码是一个相对的概念。从字面上看,能减少代码量的开发方式就可以看做是低代码。低代码平台指面向业务开发人员,屏蔽底层技术复杂性,以可视化方式为主,少量代码为辅,用来快速搭建各种应用系统的开发平台。
低代码业内领军者Outsystems有自己对低代码的定义:低代码是一种软件开发方法,可以更快地交付应用程序,并且只需很少的手工编码。低代码平台是一组工具,这些工具可以通过建模和图形界面来可视化应用程序开发。可以使开发人员可以跳过手工编码,从而加快了将应用程序投入生产的过程。
Mendix认为,低代码开发是一种可视化应用开发方法。通过低代码开发,不同经验水平的开发人员能够通过图形用户界面,使用拖放式组件和模型驱动逻辑来创建 Web 和移动应用。
从各个低码平台对低代码的定义,可以看出低代码概念的基础特征:只需少量代码、通过可视化方式开发,相比传统开发模式,周期短,交付快,能够快速搭建应用。
形式各异的低码平台
比较知名的低码平台,国外有Outsystems、Mendix,国内有阿里宜搭、简道云、轻流等,以及今年来小众性价比高的JNPF。让我们先来看看这些低代码平台研制的产品的功能有哪些,主要解决什么样的问题。
国外低代码平台
Outsystems
OutSystems 是低代码市场的长期领导者,OutSystems 的低代码开发平台,让软件开发人员和业务用户通过直观的可视化界面来构建应用程序,而不是传统的编写代码方式。用户可以在开发平台灵活拖动各个图形化控件,以构建业务流程、逻辑和数据模型等所需的功能,必要时还可以添加自己的代码。
Mendix
美国原生代低代码开发厂商,低代码开发平台的全球领导者之一。
Mendix大部分的功能都是优越的,包括其数据建模和管理能力、提供数据库及核心系统的连接组件,可以实现CRM、ERP等独立应用数据的联通。
国内低代码平台
JNPF
JNPF是引迈的高光产品,由具备10多年系统开发经验和企业项目交付经验的技术团队倾力打造而成的企业级低代码平台,一款基于Java Boot/.Net6构建的简单、跨平台快速开发框架。
运用SpringBoot微服务架构,支持SpringCloud模式。前后端封装了上千个常用类,方便扩展;采用前后端分离架构,集成了代码生成器,支持前后端业务代码生成,满足快速开发需求;框架集成了表单、报表、图表、大屏等各种常用的Demo方便直接使用;后端框架支持Vue3,平台即可私有化部署,也支持K8S集群部署。
在JNPF中,至少包含表单建模、流程设计、报表可视化、代码生成器、系统管理、前端UI等组件,这种情况下我们避免了重复造轮子,已内置大量的成熟组件,选择合适的组件进行集成或二次开发复杂功能,即可自主开发一个属于自己的应用系统。
应用地址:https://www.jnpfsoft.com/?csdn
国内零代码平台
阿里宜搭
宜搭是阿里巴巴自研的基于钉钉和阿里云的低代码平台,可让用户通过简单的拖拽、配置即可完成应用搭建,为每个组织提供低门槛、高效率的数字化业务应用生产新模式。有效缩减企业应用开发时间,助力企业数字化升级。
宜搭通过高度的抽象,将页面元素封装为基础组件和业务组件,将业务规则、权限等封装为规则配置、公式和可拖拽的流程设计器,通过拖拽以及配置,无需写代码,即可完成符合业务需求的应用系统搭建。
简道云
简道云是一款灵活易用的应用搭建平台,提供丰富的功能模块,如:在线表单,流程,仪表盘,知识库等功能。使用者无需代码基础即可像搭建积木一样,快速搭建出符合需求的个性化管理应用。
轻流
轻流认为的无代码开发是一种无需代码基础、适合业务人员、IT开发及其他各类人员使用的、快速构建适应企业各种需求变化的数字化开发平台,用户在几天甚至几个小时内就能完成系统的开发、测试和部署,并能够随时调整或更新。
虽然每个低代码平台的功能形态各不相同,但是我们仍然可以从中得出一些低码平台的通用特征:
- 低码平台的核心是搭建基础引擎,如:表单引擎,流程引擎,报表引擎,消息引擎,规则引擎等等。
- 低码平台要具备建设系统基础设施能力,如:组织架构,用户体系,权限管理等。
- 低码平台都有组件/插件库,基于数据模型,通过可视化的页面操作/配置来构建应用
- 复杂一点的低码平台,需要拥有集成管理的能力,如:集成现有系统的开发能力,自动对接第三方开放平台等。
- 低码平台功能越是丰繁复杂,越是需要程序员参与开发对接,深度配合。
程序员应该如何与低代码相处?
低代码要解决的痛点是,在低代码平台提供核心引擎和业务组件的基础上,快速搭建一套具备基础的业务功能,满足常规需求和日常使用的应用。
- 对业务人员而言,它确实满足了80%高频重复的基础需求,但仍有20%定制功能、复杂交互、特殊场景等个性化需求,无法通过可视化操作或者通用引擎来解决,必须要程序员介入开发。
另一方面,持续地进行迭代更新是一款软件保持生命力的基本要素。而这往往会造成原本属于二八原则里80%基础需求变成20%的个性化需求。越是复杂的功能迭代,越是离不开程序员。
无代码或许会到来,但去程序员不会发生。然而这并不意味着对程序员毫无影响。恰恰相反,当一个软件工程80%的功能,都可以通过简单的代码逻辑,甚至不需要代码就能实现。
如果不具备核心竞争力,那程序员还是程序员吗?