社区编辑申请
注册/登录
风口上的低代码,技术人需要考虑哪些? 译文
开发 开发工具
低代码平台采用可视化的声明性技术,而不是传统的编程方式,开发人员和非开发人员都使用这些技术,并显著减少了交付应用程序和自动化过程的时间和精力。

低代码平台采用可视化的声明性技术,而不是传统的编程方式,开发人员和非开发人员都使用这些技术,并显著减少了交付应用程序和自动化过程的时间和精力。

即便如此,低代码对不同的人来说仍然意味着很多事情,因为在这个总称下存在几种工具类型:网站生成器、表单生成器、API连接器、数据库生成器、工作流自动化等。这里,我们将介绍低代码开发与“无代码开发”的区别、主要用例、平台使用情况和关键特性。

低代码简介

2014年,Forrester创造了“低代码”这个术语,用来描述“加速应用程序交付,减少手工编码量”的开发平台。

低代码平台使用可视化的、声明性的技术来替代传统的编程方式,开发人员和非开发人员都使用这些技术,并显著减少了交付应用程序和自动化过程的时间和精力。

然而,即便如此,低代码对不同的人来说仍然意味着很多事情,因为在这个总称下存在几种工具类型:网站生成器、表单生成器、API连接器、数据库生成器、工作流自动化等。

每种工具都针对不同的领域,需要不同熟练程度的技术。它们唯一的共同点是具有图形用户界面,使应用程序用户能够配置和调整解决方案,以满足确切的需求。

低代码开发平台通常包括以下几个:

  • Visual IDE(集成开发环境):一个拖放界面,开发人员可以在其中构建应用程序的UI、工作流和数据模型
  • 后端和服务连接器:集成数据源和服务中的数据和逻辑
  • 可重用组件:预构建、预测试的拖放模块和功能
  • 应用程序管理器:用于构建、调试、部署和维护最终应用程序的工具

低代码模型兴起的最显著原因之一是更快的交付和更快的创新。此外,它使组织中的任何人都能够构建应用程序——即使是那些技术知识或开发经验有限的人。

考虑到快速开发的好处——更低的成本、更快的交付和更大的可访问性——低代码市场将在2030年达到1900亿美元。

低代码开发平台可以追溯到第四代编程语言(4GL),这是20世纪70年代到90年代发展起来的概念。该语言引入了一些最流行的快速应用程序开发(RAD)工具,如Clarion、Microsoft Access和Powerbuilder,将类似开发的功能交给了具有非技术背景的业务用户。

现代低代码开发平台推动了这一发展。这些平台将计算或领域概念可视化,并添加了底层基础设施来支持它们。但是,也许最重要的是,它们消除了构建和运行最终应用程序之间的任何摩擦。

低代码和无代码是一样的吗?

很简单,答案是否定的。虽然两个平台都依赖于相同的可视化拖放开发原则,但无代码平台不用代码开发,而低代码平台保留了一些在需要时手动添加代码的能力。

在很大程度上,无代码的应用程序很少是复杂的,只局限于特定的领域和功能。这些工具主要要求用户配置解决方案,并对所完成的任务有明确的限制。因此,它们通常需要进一步开发,来集成和连接到多个服务或添加自定义功能。

低代码能用来做什么

低代码开发平台弥补了现成软件固有的局限性、无代码的刚性和从头开发定制应用程序的高成本之间的差距。

最流行的用例包括:

(1)业务流程应用程序

低代码平台的主要目标之一是业务流程管理,允许用户构建自动化流程的应用程序,并更有效地处理它们。

(2)数据库管理应用程序

使用低代码平台绑定、查看、更新和可视化数据库表。通过支持大多数流行的数据库格式,开发人员可以轻松地将业务逻辑与数据管理期间发生的各种事件联系起来。

(3)Omni-channel平台

这些需求需要应用程序从多个来源(数据库、API、自定义业务逻辑、文件和云服务)获取数据,并自动提供实时可见性。

(4)Microservices-based应用程序

使用低代码加速独立、可扩展服务的开发和易于维护。

(5)现代化的遗留应用程序

构建API,用新功能对现有系统进行现代化、扩展和增强。

谁在使用低代码?

当我们谈论应用程序开发时,我们通常会想到由经验丰富的开发人员开发的应用程序。传统上,情况就是这样。然而,低代码平台已经引领了全民开发者的新时代,连接了业务和IT,填补了软件需求和开发人员短缺的缺口。

即便是一个没有经过正式软件开发培训的用户,仍可以使用低代码平台构建应用程序。由于更接近产品、特定领域的流程和客户,理想情况下,他们可以识别当前的业务需求,充当解决方案设计师,并在没有IT参与的情况下实现解决方案。

其他不同的开发范例也存在。例如,一些低代码平台以开发人员为目标,并支持快速开发、集成和自动化。其他人则以软件开发专业人士和普通开发者为目标,提供协作和开发应用程序的工具。

不管用户类型是什么,目标都是加速整个组织的开发。

除了速度、成本和易用性等明显优势外,低代码还可以帮助普通开发者:

  • 加快开发解决组织内关键挑战的解决方案
  • 帮助了解新应用程序机会的用户
  • 在IT的不当影响的情况下,提高整体业务生产率

许多平台还包括更深层次的技术能力,以支持专业开发人员和缩短软件开发周期。一个好的开发平台可以加速软件开发中平凡的、可重复的方面,让开发人员能够更加专注于解决应用程序逻辑的独特需求,这些需求需要时间、注意力和专业知识才能成功。通过这样做,与IT功能中的传统代码相比,它们具有显著的优势:

  • 缩短软件开发生命周期
  • 应用一致的代码质量并降低维护负担
  • 提高团队的效率和敏捷性
  • 提供一条更直接的方法来处理复杂的注意,如应用程序的安全性、基础设施和可伸缩性。

低代码平台的工具箱包括一系列预先构建的组件,这些组件在其专业领域内具有定义良好的功能。但在选择平台时,买方应考虑:

(1)确定当前和未来的用例

考虑当前的工具、系统和服务。该平台能否解决眼前的问题,并加速整个组织的应用程序开发。

(2)指定将开发应用程序的用户

低代码仍然需要一些编码技能来构建应用程序。了解谁将设计、开发和维护应用程序对于匹配用例和用户能力是至关重要的。

(3)集成需求

几乎所有平台都提供API,许多供应商提供预构建的集成,这非常适合与第三方供应商合作。但是,可以使用API做什么,它们的性能如何,以及支持它们的方式有很大的不同。因此,认真的买家应该谨慎地检查平台的可扩展性,而不仅仅是指向点击连接器。

(4)跨平台支持

大多数企业倾向于使用跨平台开发框架来为web、移动和其他平台开发解决方案。这应该在幕后自动发生,不需要额外的努力、编码或资源。

(5)托管

低代码曾是SaaS的同义词,但现在的供应商提供了更大的灵活性。例如,许多企业不让他们的数据或应用程序设计离开他们精心控制的网络,无论是出于遵守法规还是其他规则。因此,知道在哪里以及如何托管应用程序与构建应用程序一样微妙,不应被忽视或掉以轻心。

面向专业开发人员的低代码功能

虽然低代码提供了几种开箱即用的服务,可以在不编写代码的情况下组装应用程序,但越来越需要更复杂的特性来支持开发人员的思维方式和现代IT。这些措施包括:

(1)处理数据

大多数低代码平台都是可扩展的,提供了与供应商的直接集成,并使IT能够将API、web服务和命令行转化为可重用的构建块。此外,这些现成的集成将允许您连接到外部API,允许方便使用和管理身份验证令牌、检索数据,以及某种程度的查询参数化。

在标准连接器之外,开发人员经常面临一些细微差别,例如身份验证、数据验证和错误处理,有时会使对特定技术的集成变得如此复杂,以至于可能会减少低代码开发的关键优势。因此,了解该平台是否支持行业标准接口和协议(如:REST、JDBC和OData),或者它是否是开放的,并且可以通过自定义代码和API进行扩展,将极大地影响大型开发团队的采用。

(2)定制和复杂性

过去对低代码开发的批评之一是,它所提供的应用类型的局限制。在过去,许多“解决方案或垂直利基”平台仅仅围绕常见的业务问题、概念或行业(如,工作流或BPM)展开,这在IT团队中造成了一种看法,即缺乏灵活性,无法提供他们想要或需要的附加功能。

然而,随着软件开发人员的角色和技术的进步,现代的低代码平台也在进步。但是不同平台的定制选项仍然存在很大的差异。有些是隐藏代码的专有“黑盒”;有些是开源的,提供对底层代码的访问。还有一些提供了用额外的自定义代码补充生成代码的功能。

在采用任何平台之前,必须了解开发人员将任何外部创新引入低代码平台的容易程度。拥有快速构建应用程序的能力,同时平衡对更复杂功能的需求,这是开发人员采用的一个基本因素。为了交付完全可定制的应用程序,开发人员需要一种类似pro代码的体验,在这种体验中,他们可以在快速地解决方案中实现复杂性,适应边缘情况,或者将独特的解决方案集成到最复杂的技术堆栈中。

(3)企业发展

为了在企业环境中采用,开发人员可能需要考虑与他们特定环境相关的更深层次的功能集,包括平台如何实现:

  • 重用:资产的可重用性是IT团队生产率的关键驱动因素。一个好的低代码平台应该允许用户重用预先配置好的模块、核心函数、代码片段和后端集成商,来快速构建不同的应用程序。
  • 可扩展性:低代码解决方案应允许在环境和应用程序中进行扩展。例如,您可能有基础设置地能力来开发和部署应用程序,但您的许可条款可能会限制它,反之亦然。因此,在设置时,要了解平台容量,并了解它是否适合您的可扩展性需求。
    真正可扩展的低代码平台具有定义良好的REST API,这些API将UI与后端层分离,允许大规模开发应用程序,并确保按照行业标准遵循性能和设计方面的最佳实践。理想情况下,低代码平台必须具有快速的API创建和绑定工具,以及自动化的API文档,以帮助您将单一的遗留应用程序重新构建为基于微服务的现代微应用程序。
  • DevOps:一个成熟的低代码平台应该集成并支持敏捷开发流程的功能。说到DevOps功能,需要考虑:对应用程序进行版本控制或与GitHub等版本控制系统集成;在整个开发生命周期(开发、测试和其他环境)中工作;能够连接到管理待办事项和路线图的工具;与持续集成、变更管理流程等集成;支持灾难恢复和数据科学的工具和其他特定功能。

(4)合规性和安全性

虽然普通开发者通常没有安全方面的经验或理解,但这对于企业开发者来说是至关重要的一步。在购买前依靠内部安全团队对平台进行评估应被认为是最佳做法。专家最好了解平台如何适应基于角色的管理、数据屏蔽和其他考虑因素,如HIPAA合规性、托管约束或其他与安全相关的限制。

低代码流程

低代码应用程序的构建速度可能很快,但在构建时仍应考虑最佳实践。以下是如何成功选择和实现低代码的指导方针:

(1)平台选择

由于该领域有无数的供应商,对于公司来说,很难知道在选择过程中从哪里开始。理想的策略应该是让传统IT帮助选择平台,对他们投入生产的任何其他技术工具或系统遵循相同的流程。这意味着深入测试平台的能力、指导使用、教育用户、确保符合组织的架构计划、有一个维护计划和退役策略等等。

(2)规划你的第一个解决方案

从路线图开始。这可能是显而易见的,但它有助于关注组织的直接需求,有什么要求?你需要什么样的应用程序?谁来建造它?

规划可部署技术的范围,以确定数据安全、测试、所有权规则等标准。实现低代码平台的很大一部分是了解自己的需求,包括现在和将来的需求。

(3)整合

花时间了解所选平台将如何与日益复杂的技术堆栈连接,这些技术堆栈可以包括分布式系统、遗留应用程序、第三方API、现成软件等等。此外,现代组织中的数据集成、各种数据格式和不同类型的端点可能很复杂,并且会阻碍速度,尤其是在大型IT环境中。

(4)构建

当构建应用程序时,无论你是一名经验丰富的工程师还是一名普通的开发人员,都不可避免地存在一个学习曲线。为了得到最好的结果,请从一个小型应用程序开始,建立对工具集的信心,并采用敏捷思维方式。通过快速原型设计、快速反馈和重复来鼓励快速失败的心态。

(5)测试

由于低代码编程可以最大限度地减少编写应用程序所需的时间和精力,因此很多人会认为它减少了QA团队测试应用程序所需的时间。然而,低代码应用的功能测试和性能测试与其他类型的应用一样重要。

事实上,在某些方面,对于为低代码环境,拥有可靠的QA过程甚至比在传统应用程序更重要,因为它们通常构成必须与外部数据资源集成的更大工作流的一部分。

(6)部署

低代码的一个直接好处是部署速度——通常只需点击一下。但是,有这么多选择——公共云、私有云、混合云以及本地部署——仍然需要具备开发技能的人员来管理基础设施和架构上的细微擦别,以便将应用程序投入生产。还要注意如何执行此操作来消除与管理、验证和扩展应用程序相关的额外技术负担。

低代码底线

由于在解决成本、范围和时间限制上的优势,低代码平台似乎可以长期使用。低代码的商业案例在不断增加,反之,对低代码无法满足企业需求或它们将取代人工编码的毫无根据的担忧继续下降。

如果IT部门超负荷工作或无法满足交付时间,低代码可能很诱人。然而,采用的关键是从小处着手,同时培养组织能力和技能。对于初学者来说非常简单,可以构建高价值的应用程序——并且足够复杂,可以满足专业开发人员应对复杂挑战的需求。

虽然这些平台可能无法给出所有开发挑战的答案,但它们已经简化并缩短了几个软件开发阶段。因此,无论是一次性原型、概念验证,还是关键业务管理系统,低代码都有很大潜力为现代企业提供灵活性和创新。

原文链接:https://dzone.com/refcardz/low-code-application-development

责任编辑:闫怀德 来源: 51CTO
相关推荐

2022-06-12 06:48:34

2022-06-05 21:09:47

Python办公自动化

2022-06-16 17:02:49

微软智能云混合云Azure

2022-06-15 08:25:07

Python天气数据可视化分析

2022-06-27 19:01:04

Python应用程序数据

2022-06-16 07:32:38

VSCodePython插件

2022-06-17 09:08:27

代码Python内置库

2022-05-26 11:01:24

2022-06-16 15:42:16

攻击面管理ASM

2022-06-28 09:26:25

Python配置文件

2022-06-25 21:22:30

编程Rust代码

2022-06-28 09:34:24

可视化Python代码

2022-06-28 14:01:42

MITOpenAI预训练模型

2022-06-16 14:07:26

Java代码代码review

2022-06-20 13:34:46

漏洞网络攻击

2022-06-28 10:03:56

CentOSLinux

2022-06-09 10:12:01

网络安全人工智能威胁监测

2022-06-27 23:44:37

云原生云存储云计算

2022-06-26 09:55:00

接口自动化项目

2022-06-24 14:07:06

机器人供应链人工智能

同话题下的热门内容

Flask vs Django: 该如何选择Python框架?分布式编程工具Akka Streams、Kafka Streams和Spark Streaming大PK专为开发人员构建的个人知识管理工具 - Dendron超详细的日常开发必备神器 HttpUtilObsidian 一周使用心得(配置、主题和插件)有了这些神器,随时随地获取优秀技术前沿!Java 开发者必备的 十 个 IntelliJ IDEA 插件2022 年需求中值得拥有的 DevOps 工具

编辑推荐

终于有人把Elasticsearch原理讲透了!花了一个星期,我终于把RPC框架整明白了!这可能是把ZooKeeper概念讲的最清楚的一篇文章论如何下载一个在线的m3u8文件到本地成为一个mp4!拜托!面试不要再问我Spring Cloud底层原理
我收藏的内容
点赞
收藏

51CTO技术栈公众号