低代码、快速的应用程序开发和数字转换的挑战问题 -Bozho


最近,许多低码/无码解决方案在企业中得到了发展,从而使非技术人员可以选择创建简单的应用程序。分析人士预测,低码行业将以每年20%以上的速度增长。但是什么是低码,为什么它如此流行,它又有什么问题呢?
低代码是我们在过去几十年间偶尔看到的东西–拖放式UI设计器,使您可以创建简单的应用程序而无需编码技能。产品已经成熟,并且几乎都提供了类似的功能-在拖放式实体关系图中设计实体关系的能力,通过所见即所得设计UI的能力,通过类似于BPMN的符号设计简单流程,通过以下方式调用外部服务的能力导入Web服务定义,以便从预烘焙的实体定义中进行选择,以及在外部数据库和电子表格中获取和存储数据。
该领域中有许多工具– MS PowerApps,OutSystems,Appian,Mendix,Google最近收购的AppSheets,Ninox,WaveMaker等。而且它们的方法和功能集可能略有不同,但总的要点是能够轻松创建应用程序(基于Web,基于移动设备,混合),以解决这些用户遇到的一些即时难题。一个成熟的IT项目及其相关的开发成本实在是过大了。
这听起来很棒–您不必依靠非IT公司中过于忙碌且反应不频繁的IT部门,您只需自己构建一些东西就可以优化您的紧迫问题并数字化您的书面流程。我们必须承认,专业开发人员不可能无处不在,无法解决信息技术可以解决的所有问题。这样的工具使数字化转型民主化,允许非技术人员创建软件。
或至少这是理论。实际上,这在许多方面都具有挑战性:

  • 需要一些技术知识 -能够绘制实体关系图很酷,但是首先您需要知道什么是数据模型。能够导入Web服务并能够调用它是很好的,但是您必须知道Web服务是什么。集成用户目录意味着您知道什么是LDAP / AD。我不确定非技术人员能否真正利用这些功能。即使打开一个新对话框,某些工具仍然需要简单的代码,并且您必须从某个地方复制粘贴该代码。
  • 与本地系统集成 –构建有用的东西几乎总是需要与现有系统集成。假设一切都在“云”中是很好的,但是从第三方SaaS的角度来看,即使云也可以视为内部部署。我见过的许多工具都通过提供IP,用户名和密码来与数据库集成-几乎从来没有,这是一个坏主意。连接到机构基础结构中某物的能力(即使该基础结构在Azure上并且您正在使用MS PowerApps)也意味着权限,网络规则配置,帐户,批准。而且您必须知道要求什么才能得到它。
  • 供应商锁定 –大多数低代码工具使用专有格式进行元描述(例如,有些甚至将其元数据的二进制表示形式存储在本地sqlite数据库中)。一些提供程序允许您通过安装他们的服务器端应用程序在自己的云上运行该应用程序,但是一些纯粹是SaaS。使用一种工具构建应用程序后,就无法真正切换到另一种工具。WaveMaker和Skyve是很好的例外,它们会生成实际的Java代码,您可以随时下载它们。锁定不好吗?好吧,是的–如果碰巧您需要尚不可用的功能或尚不存在的集成功能,那么您将陷入困境。
  • 影子IT –假定组织中的所有IT均由IT部门进行管理和观察。在监视,安全性,合规性,数据保护,生命周期管理,技术支持等方面。使用低代码,这些应用程序可以存在,而IT部门甚至不知道它们,并且带来许多风险(我将在下面讨论)
  • 可持续性 –如果一家低代码公司倒闭,或者被决定淘汰某个产品或一系列功能的人收购,该怎么办?当创建低代码应用程序的员工离开并且没有人知道如何使用所选工具进行“编程”以支持该应用程序时,会发生什么?低代码应用程序本身成为旧版时会发生什么?由于供应商锁定并且缺乏任何标准化,因此在可持续性方面承担着很大的风险。当然,您将以某种方式解决当前的问题,但是您可能会在此基础上创建更多的问题。
  • 安全性 –一方面,使用PaaS / SaaS可能被视为内置安全性。另一方面,非技术人员无法评估给定平台的安全性。安全性不能完全“内置” –您必须确保需要身份验证,在列入白名单的办公地点之外看不见应用程序,未经授权的人员不能导出数据,并且必须保护自己XSS,CSRF,SQLi等。即使平台提供了这些选项,非技术人员也不知道他们必须首先照顾它们。
  • 合规性 –许多行业受到监管,并且有横向法规,例如数据保护法规(GDPR,CCPA)。数据泄露经常发生是因为数据是从其原始的受良好保护的存储中取出的,并保存在数据保护人员不知道的地方(例如低代码应用程序)。加密,匿名化,数据最小化,保留期–大多数低代码解决方案都不支持这些功能,不熟悉这些细节的员工不太可能花更多的精力来兼容该应用程序。
  • 无法控制的错误–当您的软件中存在错误时,可以对其进行修复。如果它在库中,则可以对其进行修补。如果在第三方平台的一组工具中,您将无能为力。在测试几种低代码解决方案的过程中,我偶然发现了许多错误和不一致之处。

从RAD到RPA
有趣的是,低代码是更广泛技术堆栈的一部分。它们以“快速应用程序开发”(RAD)工具和框架开始,以“无代码”(也就是功能较少的无代码替代品)结束。像Spring Roo这样的代码生成工具是OpenXava这样的RAD框架。某些低代码工具实际上可以看作是RAD工具:开发人员团队可以很容易地使用上述WaveMaker来快速交付较简单的项目,而无需牺牲过多的控制权。
然后是RPA,即“机器人流程自动化”,我将直截了当简化为“屏幕抓取的低代码”,您可以使涉及旧系统的某些流程自动化,而这些流程只能通过按下“机器人”来提取信息并执行操作屏幕上的按钮。
RPA稍微不在快速的应用程序开发范围之内,但是它带来了一个重要的点:RPA开发人员。他们的技术水平不高,不具备开发人员资格的人员,但仍可以使用RPA工具实现流程自动化。低代码和RAD的某些风格也是如此:假定您不必一定要开发某些技术,但是实际上可以(并且有)专门的专家可以使用这些工具来构建东西。他们不是真正的开发人员,

我希望每个人都能够在高级RAD工具的帮助下至少编写简单的代码。而且我们可能会在几十年内一直这样。