近期,Gartner、Forrester等行研机构陆续更新了低代码相关的报告,报告中对低代码的能力模型进行了调整。从整体方向上看,上述行研机构在评估低代码开发平台产品时,提升了数据模型/模型驱动的重要性,并且细化了开发管制(governance)相关的要求。
事实上,随着低代码应用场景的泛化和深化,国际上的主流行研机构已经明确了“低代码开发和传统开发方式在应用场景上一致”的大方向,并且按照开发复杂系统、大规模系统的标准,衡量低代码开发工具。
核心能力体系
在此背景之下,我根据对低代码行业的观察和理解,再考虑上中国特有的需求,整理出一份低代码开发平台核心能力,分为开发、扩展、体验和管制四个方面,供技术选型参考。
1. 开发
1.1 模型驱动开发
模型驱动是软件开发的成熟方法论,是企业级系统开发的通行做法。模型驱动开发大致可以分为三个阶段:
数据模型:根据数据库设计范式,制作出由数据表、关系、约束等构成的数据模型
业务模型:将业务逻辑构建在数据模型之上,形成完整的业务模型(也称领域模型)
交互界面:基于业务模型开发交互页面,编排业务模型以实现业务操作
1.2 可视化:UI设计
使用可视化的方式构建前端界面和前端交互行为。如果您的项目需要保持统一的VI,那么是否支持引入CSS文件也需要纳入考察项目。
1.3 可视化:逻辑处理开发
使用可视化的方式,在前端或者后端构建业务处理逻辑。对于有事务性要求的企业级应用项目,如ERP、WMS或财务,需要重点关注后端业务逻辑处理的开发方式。
1.4 可视化:系统运维
低代码开发平台应关注软件开发的全生命周期,部署、迭代、监控等环节的可视化,同样可以大幅降低软件的整体成本。
2. 扩展
2.1 数据库集成
数据库集成能力是打通“数据孤岛”的必备条件,也是成本最低的方案之一。是否能够连接外部的数据库,是否能够调用该数据库上存储过程等编程能力,对大企业的软件开发项目来说至关重要。
2.2 WebAPI集成
现代的软件系统和SaaS服务均以Web API的形式对外提供接口,用于集成。通过调用Web API可以让低代码开发平台具备更强大的开发能力和更广泛的应用场景。
2.3 编程接口
软件需求和IT环境的变化通常会超过开发平台的迭代,编程接口便是避免“卡在最后一公里”的最后一道防线。
2.4可扩展的组件生态
在编程接口的基础上,如果能够存在一个组件生态,让用户能快速找到自己所需的开发功能,避免“重复造轮子”,何乐为不为呢。
3. 体验
3.1 响应式页面支持
响应式页面可以分为流式布局和网格布局两种。支持响应式页面意味着用户无需针对特定的屏幕尺寸做专门的设计,可以大幅提升UI的开发效率。
3.2 定制化的原生APP支持
为了充分利用硬件的特性,针对iOS或Android开发原生APP依然没有被抛弃。是否能构建从Logo到功能,全定制化的原生APP对于某些项目来说,依然是必须项目。
3.3 本土化移动端支持
移动办公在国内基本上等同于钉钉和微信,所以,低代码开发平台需要具备与这两个IM软件无缝对接的能力,从页面嵌入到用户集成,不容忽视。
4. 管制
4.1 Web版IDE
相比于桌面版的IDE,Web版具备更快速的部署、更统一的版本等优势,对于大型项目开发团队而言,为此牺牲一定的开发效率都可以接受。
4.2 版本管理
企业级应用的高复杂度和频繁的需求变更决定了版本管理的重要性。事实上,在专业开发领域,版本管理已经成了标配,并基于此衍生出了完整的项目管理方法论。
4.3 代码仓库管理
与代码类似,用户使用低代码工具开发的资产也是公司或团队的财富,如何安全可靠的保存这些资产,将其存放在位于局域网或互联网的Git等代码库,配置访问权限是个好思路。
4.4 局域网部署
在中国,依然有很多企业对数据和应用程序的可控性提出非常严苛的要求,如果用户需要为他们开发核心业务系统,支持局域网部署,在完全没有互联网的情况下也可以开发、部署和使用就成为不得不面对的现实。
国内外典型产品横评
为了直观的展示核心能力体系,我选取了国内外几个典型的低代码开发平台产品(outsystems、powerapps、活字格、钉钉宜搭)进行横评。这里的评价仅为定性,不涉及定量。一家之言,仅供参考。
事实表明,低代码和无代码开发平台允许开发人员比传统编程速度更快、成本更低地开发应用程序。而人们需要了解如何为工作选择正确的低代码或无代码工具。
如今的低代码和无代码开发平台使软件开发人员团队(甚至非编程人员)能够交付、支持和扩展广泛的应用程序。它们用于构建移动应用程序、提高客户体验、简化工作流程、使遗留应用程序实现现代化、数据集成自动化,以及支持数据可视化,这些都是一些常见的用途。
低代码和无代码开发工具的主要特点是它们可以被开发人员成功使用;他们可以比使用原生SDK更快地开发应用程序;并且可以用更少的费用开发应用程序。虽然许多低代码和无代码开发平台需要收取许可费或订阅费用,但也让开发人员节省人工成本。
在开始购买低代码或无代码开发工具之前,开发人员应该问自己一些关于开发应用程序的问题,以了解采用低代码或无代码工具是否有意义。以下是他们需要提出的问题:
正在构建桌面应用程序吗?是用于Windows?用于Mac?用于Linux?还是用于所有操作系统?
正在构建网络应用程序吗?是用于桌面浏览器?用于平板电脑?用于智能手机?还是用于所有设备?
正在构建移动应用程序吗?是用于iPhone?用于iPad?用于安卓?还是用于所有移动设备操作系统?
是否打算为移动设备编写原生代码?是否使用混合网络技术?使用原生shell和Web内容?还是使用所有这些技术?
有预算吗?预算是多少?有截止日期吗?开发时间有多长?有多少名开发人员?他们拥有哪些技能?预算、截止日期和资源是否与应用目标一致?是如何进行估算的?
应用程序是否需要采用数据库?如果需要,是采用现有数据库还是新建数据库?客户端会更新数据库吗?
应用程序是否需要支持客户端通信?还需要其他特殊功能吗?
是否正在构建供内部使用的应用程序?是为客户还是消费者构建?是为商业伙伴?还是为所有这些人?
是否正在替换或现代化现有业务流程?是否正在尝试将现有的纸质表格实现计算机化?
正如这一系列问题所表明的那样,应用程序的目标环境有很多种。无代码和低代码开发工具也有很多种设计范式。