低代码==低质量?

18-11-12 banq
                   

低代码可以节省大量时间,开发人员可以编写更少的代码 - 在极端情况下,几乎不需要编程。开发人员真的需要重新寻找新工作了吗?

前身RAD

RAD(快速应用程序开发)产品的第一个版本,例如Visual Basic,Delphi甚至Oracle Forms,早在20世纪90年代就已开发出来。通过这些编程环境,开发人员可以直观地“组装”他们的桌面应用程序。图形界面是重点,并逐步丰富业务逻辑。这就是RAD工具易于学习的环境。

此外,还考虑了其​​他重要方面的业务应用程序。对于桌面上的应用程序分发,可以生成用于分发的单个集成“胖”EXE文件或具有单独DLL库的更精简的EXE。

但是,RAD工具也有限制。它们通常是专有的。也就是说,保留工具的环境不是或仅部分可能。目标环境通常是固定的,例如Microsoft Windows for Visual Basic和Delphi,Oracle应用程序服务器和Oracle Forms数据库。但是,Embarcadero已经开始将Delphi从纯Windows扩展到跨平台软件。因此,除了Windows之外,还可以生成macOS,Linux,尤其是移动应用程序。

Visual Cafe和Borlands JBuilder等RAD工具也在努力满足速度和资源需求。他们的口号是“吃你自己的狗粮”,它们本身就是用Java写的,当时这意味着对资源的巨大渴望。

在21世纪,大多数上述RAD环境都从雷达中消失了。Java是当今使用最广泛的编程语言,Eclipse仍然是最受欢迎的开发环境。然而,诸如Swing和SWT之类的“经典”UI工具包变得越来越没有意义,并且应用程序几乎总是写在Web上。Eclipse的WYSIWYG设计器(所见即所得)使WindowBuilder成为一个阴暗的存在。

对于Web,有一些商业视觉编辑器,如MyEclipse或开源产品,如JBoss ToolsNetBeans。Oracle的Application Express(APEX)还提供Web界面,但用户依赖于Oracle数据库。

界面设计越来越多地使用HTML,CSS和JavaScript,同时创建了Web设计师这个额外职业。不同的Web浏览器,Linux和macOS等操作系统以及从PC到智能手机再到可穿戴设备的设备都是可能的目标系统。

此时,令人兴奋的是,移动设备上的桌面应用程序正在经历一定的复兴。移动应用程序,Android和iOS上的“应用程序”完全是原生的。开发环境提供了一个使用Android StudioXcode的良好可视化编辑器。但是,它们也受到Web应用程序的威胁,无论是通过响应式Web应用程序还是诸如Progressive Web Apps(PWA)之类的技术。

其次是MDSD

模型驱动的软件开发(MDSD,模型驱动的软件开发)的想法是关闭的业务和开发之间的差距。模型应该启用领域的整体和共同的概念,特别是将专业和技术兼顾最好了。UML(统一建模语言)和BPMN(业务流程建模符号)已经在商业应用中应用。流程(BPMN)、结构(UML类模型)和状态(UML状态模型)是一组非常实用的模型,应用在很多系统中。

然后,通过生成器和解释器来从模型中生成Java等源代码,剩余部分(无法有意义地表示为模型)通过手动和文本方式进行编码。

几十年来,MDA一直是应该彻底改变软件开发的主题之一。但是,重新生成(尤其是在添加新属性等较小的更改时)很麻烦,并且在具有多个开发人员的项目中,需要更多协调。生成代码和自己代码之间的接口也存在问题。长期以来[url=https://www.heise.de/developer/artikel/Modellgetriebene-Softwareentwicklung-mit-UML-und-Java-1776860.html]人们对[/url]AndroMDAUML产品[url=http://andromda.sourceforge.net/]产生了[/url]浓厚的兴趣。然而,今天,他们只扮演次要角色。BPMN仍然引起了极大的兴趣,因为企业部门正在很好地通过流程处理演示文稿。一个流行的例子是开源产品Camunda使用。但是,BPMN只是软件中相对较小的一部分,因此很难被理解为一种完整的方法。

几乎每个开发人员都雄心勃勃地尝试实现一个框架,一个平台,在其自身的业务环境中,使得许多软件开发不必要,标准化或以任何方式简化。然后,这包括开发过程和IT环境的设计和架构规范。

通常情况下,魔鬼就是细节。迟早会出现不符合所考虑模型的事情。

低代码或无代码平台

低代码是注重消除或至少显着降低编写代码的能力。因此,低码平台包括RAD和MDSD的程序,并考虑ALM(应用程序生命周期管理)和持续集成(CI)和用于开发,测试和生产环境持续部署(CD) 。

为了能够一键创建整个环境,必须提供相应的PaaS(平台即服务)。有一些内部产品,例如容器平台OpenShift,但通常是相应的云服务。这些aPaaS平台即服务)提供了应用程序在其整个生命周期中所需的一切 - 从初始规划阶段到开发,验收和操作。

任何对软件开发历史感兴趣的人都应该了解低代码平台和计算机辅助软件工程(CASE)工具之间存在很多相似之处。

全面的低代码平台应涵盖的软件开发的所有方面。开发工具,开发,测试和生产环境以及开发过程组合在一个平台中。将所有功能用作云服务(aPaaS)的能力简化了进入这种低代码平台的能力。不需要自己的服务器和安装。

当前的低代码平台提供以下应用程序开发支持:

  1. 表现层:使用可视化编辑器,可以简单地单击UI元素并根据需要进行排列。可以随时根据“真实”符号与业务部门协调。
  2. 业务逻辑层:使用BPMN和UML的可视化编辑器来设计流程和业务实体。这些编辑器可以实现与流程图相当的详细逻辑和单个流程步骤。
  3. 数据层:完全生成来自业务实体的SQL命令,或使用ERM(实体关系模型)编辑器直观地创建数据库结构。
  4. 通常在菜单结构中提供诸如认证和授权的基本服务。

而,在理论上非常有用,在实践中很快就会出现问题:清楚地排列元素相对容易。但是,在更改分辨率甚至是其他显示设备时,它们应该如何表现?因此,必须可以为不同的分辨率和设备存放行为或多个掩码变体。

在建模业务流程时也存在一些问题。仅出于理解和文档的原因,大规模描述流程是有意义的。另一方面,是否必须在模型中精心描述快速编程if-then-else语句是值得怀疑的。同样,生成器在创建数据库对象和访问层时受到限制,并且还应该可以处理现有结构。

对于低代码平台可以检查四个属性:

  • 该平台是否具有可视化编辑器,是否可以从模型中透明地生成代码?
  • 该平台是否涵盖了完整的宏观和微观开发过程?
  • 结果可以导出并导入到其他平台中,还是只在开发环境中打开?
  • 哪些编程语言支持详细的自定义?

低代码作为所有软件开发问题的解决方案?

低代码编程方法已有几十年的历史,其目标是简化表面开发(RAD)或整体软件架构(ALA MDA)。然而,随着技术进步对软件的要求显着提高,这两个方面所涉及的问题几乎没有变化。如果可视化简化得很多,则仍然存在必须编码的复杂问题。

应当指出的软件开发中最适用的帕累托原则:低码平台可以实现80%软件项目,但对于剩下的20%,可能要花上80%的精力和时间。在可预见的将来,无法生成耗时、复杂的软件部分。(banq注:复杂软件部分使用DDD人工对付,可以体现人工智慧的地方)

由于应用程序的平台即服务(aPaaS)是当前流行功能,低代码平台可以提供主要优势,它显著地简化了整个开发环境的构建。