​低代码产品通过提供丰富的预构件、模板和用户友好的设计界面,使得软件开发不再局限于程序员,而是扩展到业务分析师、产品经理乃至最终用户。这种模式不仅提升了程序员的编程效率,还有效满足了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、项目、企业服务等多个应用场景,全面助力企业落地数字化转型战略目标。

不管说得再天花乱坠,都不能代替产品本身,好产品,值得大家切身体验。

Logo

低代码爱好者的网上家园

更多推荐