paint-brush
释放低代码的力量:架起自由与锁定的桥梁经过@wavemaker
461 讀數
461 讀數

释放低代码的力量:架起自由与锁定的桥梁

经过 WaveMaker Inc10m2023/09/18
Read on Terminal Reader

太長; 讀書

了解低代码如何为开发人员提供代码访问、提供定制灵活性以及通过增强的性能改变应用程序开发环境。
featured image - 释放低代码的力量:架起自由与锁定的桥梁
WaveMaker Inc HackerNoon profile picture
0-item

近年来, 低代码开发平台迅速流行,有望彻底改变我们创建应用程序的方式。这些平台提供了诱人的前景:能够用最少的编码知识或经验来设计和部署应用程序。通过抽象出传统上与编码相关的大部分复杂性,它们使个人和组织能够快速将他们的软件创意变为现实。


然而,低代码开发的诱惑也伴随着一系列挑战,特别是在处理需要自定义逻辑、复杂集成和卓越性能的复杂应用程序时。此类复杂的系统通常会突破低代码平台功能的界限,探索其功能丰富性、安全性、可扩展性和适应性的深度。


那么,为什么开发人员仍然发现自己需要伸手去敲键盘并编写代码呢?在这次低代码开发的探索中,我们将深入探讨开发人员运用编码技能来补充低代码平台的能力并满足现代软件开发的复杂需求的场景。


代码和低代码的交集

低代码开发的核心思想是通过提供预构建的组件和可视化界面来简化软件创建过程。这些组件充当构建块,使用户能够以最少的手动编码构建应用程序。然而,当涉及复杂的用例、自定义集成和追求峰值性能时,开发人员经常发现自己处于开发过程的最前沿。


  1. 自定义逻辑和集成


    复杂的应用程序经常需要针对其独特功能量身定制的自定义逻辑。无论是实施复杂的身份验证机制、进行数据验证、执行数据的预处理或后处理、设计定制的用户交互,还是遵守完美用户界面的特定品牌指南,开发人员都会介入对这些专门元素进行编码。这些场景突破了低代码平台开箱即用处理能力的界限。


  2. 与外部系统集成

    在当今互联的数字环境中,大多数现代应用程序都与外部数据库、API 或服务进行交互。虽然低代码平台提供了一系列开箱即用的连接器以及与流行系统的集成,但在某些情况下,开发人员需要编写代码以促进低代码平台和外部系统之间的无缝数据交换,特别是在处理与遗留软件。


  3. 性能优化

    性能优化仍然是软件开发中最重要的问题。当应用程序的性能对于任务至关重要时,开发人员会深入研究底层代码以对其进行微调。它们优化应用程序的特定方面,以提高效率、减少延迟并妥善管理大量数据。追求峰值性能通常需要直接代码干预。


  4. 先进的面向客户的应用程序

    虽然低代码平台擅长简化内部流程和自动化业务工作流程,但在构建复杂的面向客户的应用程序时,它们可能会表现不佳。这些应用程序通常涉及复杂的用户旅程、与外部系统的集成以及超出典型低代码功能范围的专门功能。开发人员在编码这些高级或利基功能方面发挥着关键作用。


寻求开放标准

低代码开发平台之间的一个显着区别是它们的代码生成方法。虽然一些平台遵循代码隐藏策略,根据开放标准生成代码,但其他平台则在专有框架内运行。这两种方法之间的选择可以显着影响开发人员的编码自由度以及供应商锁定的可能性。


  1. 代码隐藏方法

    采用代码隐藏方法的低代码平台为开发人员提供了两全其美的优势。他们利用可视化开发工具进行前端和逻辑创建,同时从模型、数据库或 API 生成后端代码。生成的代码可以根据需要进行访问和修改,从而使开发人员能够对应用程序进行细粒度的控制。


  2. 代码导出功能某些低代码平台为开发人员提供了部分或全部导出生成代码的能力。当与现有系统集成、实施高级定制或将应用程序迁移到不同环境时,这一功能被证明是非常宝贵的。代码导出选项的可用性是确定代码自由程度的关键因素。


    平衡期望与现实当开发人员和企业采用低代码平台时,他们会产生一系列由这些工具的承诺和潜力决定的期望。让我们详细探讨这些期望:


    1. 快速应用开发

      低代码平台因其加速应用程序的编码、测试和部署的能力而闻名。更快的上市时间的承诺仍然是采用这些平台的一个令人信服的理由。

    2. 可视化开发可视化界面和拖放功能使用户能够直观地设计应用程序、创建用户界面、建立工作流程以及集成各种组件。视觉方面简化了开发过程,即使对于那些编码经验有限的人来说也是如此。

    3. 定制和可扩展性 灵活性和可扩展框架对于容纳定制代码、集成现有系统以及利用第三方库和 API 至关重要。开发人员依靠这种定制功能来满足特定要求并扩展功能。

    4. 集成功能低代码平台通过 API 和库提供与外部数据源、云服务和遗留系统的无缝连接。这种集成能力对于依赖大量外部服务的现代应用程序至关重要。

    5. 可扩展性和性能 随着应用程序的增长,它们必须满足对可扩展性和性能不断增长的需求。低代码平台必须提供工具和机制来优化性能并有效管理大量数据。

    6. 支持软件开发生命周期 (SDLC) 开发人员通常以团队形式工作,因此需要低代码平台来支持迭代开发等标准 SDLC 流程。版本控制、代码共享和协作开发环境等功能对于成功的团队协作至关重要。

    7. 错误处理 强大的错误处理机制可确保应用程序保持稳定和安全。低代码平台应提供调试和故障排除工具,以及时识别和解决问题。

    8. 部署灵活性 将应用程序部署到各种环境(包括云平台、本地服务器和移动设备)的灵活性至关重要。低代码平台应该支持多种部署选项并提供无缝的部署流程。

    9. 广泛的组件库丰富的预构建组件和模板集,包括即用型 UI 组件、流行服务的连接器以及可重用模块,可显着加快应用程序开发速度。


了解供应商锁定


当组织踏上低代码之旅时,一个关键的考虑因素是供应商锁定的可能性。供应商锁定问题围绕着在低代码平台上构建的应用程序可以在多大程度上保持独立并可用于未来的修改或升级。这些担忧包括几个方面:


  1. 部署独立性企业经常评估有关运行时独立性的供应商锁定,允许他们出于合规性原因在自己选择的基础设施上部署应用程序。此要求可确保组织保留在其首选云或基础设施上部署低代码构建应用程序的灵活性。

  2. 定制和扩展对于利用低代码开发其产品和解决方案的软件产品供应商或独立软件供应商(ISV)来说,访问和修改平台外部代码的能力变得至关重要。这种程度的自由度确保下游产品用户可以根据需要定制和增强应用程序。

  3. 应用程序生成的代码的开发和修改与软件产品供应商类似,系统集成商(SI)利用低代码平台来加快开发并增强客户体验。这些 SI 评估低代码平台,重点关注代码的可访问性和可修改性。他们寻求在平台之外开发、修改和维护应用程序生成的代码的能力。

  4. 升级底层技术堆栈在某些情况下,组织可能需要独立于低代码平台而灵活地升级底层技术堆栈。这种独立性确保应用程序可以随着技术环境的变化而发展。代码可访问性:可能性的范围低代码平台的代码可访问性方法各不相同,有些平台比其他平台提供更多的自由。以下是对可能性范围的更仔细的观察:

  5. 不提供代码访问的平台许多低代码平台采用封闭的生态系统,其中代码访问受到限制或不存在。这些平台依赖于预定义的组件和模型,通常锁定在平台的运行时中。虽然它们简化了应用程序开发,但也可能限制开发人员自定义或扩展代码库的能力。前端限制:此类平台的前端通常依赖于具有最少自定义选项的预构建 UI 组件。扩展或修改这些组件可能具有挑战性。后端专有框架:后端可能使用专有的运行时框架,这些框架缺乏添加自定义逻辑或基于代码的自定义的灵活性。这些平台通常会在从部署到定制的各个方面施加锁定。

  6. 使用代码隐藏的平台采用代码隐藏方法的低代码平台提供了更透明的开发流程。他们使用可视化开发工具进行前端和逻辑创建,同时基于开放标准框架生成后端代码。在此类平台中,开发人员保留对生成代码的访问权限,从而可以进行平台内置功能之外的自定义。

  7. 提供代码导出的平台某些低代码平台通过允许开发人员导出生成的代码(无论是部分还是全部)来弥补这一差距。这种导出功能有利于与现有系统的集成、高级定制以及迁移到不同的环境。开发人员可以直接访问底层实现,为他们提供更多的控制和自由。


    探索低代码平台:提供商的评价

    为了进一步阐明低代码平台中代码可访问性的细微差别,我们来看看一些流行的平台对其生成的代码有何评价:


    外部系统

    OutSystems 提供了一种混合方法,其中生成的代码的某些部分可以由开发人员访问和修改,而其他部分则保持专有。它允许开发人员将源代码与平台分离,保留生成的应用程序源代码和数据库架构的最新版本。这种分离的代码可以在用于代码生成的 .NET 运行时上构建和运行,但它有局限性。一旦分离源代码,部署、配置管理、版本控制、打包、监控和分析等平台服务将不再可用。可以使用 Visual Studio 或 Eclipse 对分离的源代码进行修改,但一旦更改就无法重新集成到平台中。


    门迪克斯

    Mendix 采用模型驱动的开发方式,注重扩展而不是直接代码定制。开发人员可以通过编写代码扩展来扩展平台,例如前端小部件和后端连接器。前端扩展利用 React、Angular 和 D3 等 JavaScript 库,而后端扩展支持与 REST、SOAP 和 OData 对象的集成。然而,定制由 Mendix 生成的代码通常是不可能的。该平台解释模型并生成运行时功能,有效锁定应用程序代码,使其无法在平台外部进行维护、修改或定制。 Mendix 确实提供了一个 API/SDK 来以编程方式访问应用程序模型,从而促进向替代低代码平台或 Java 和 Hibernate 等传统编程语言的潜在迁移。


    重组

    Retool 采用专有语言来定义组件和操作,并生成用于后端集成和 API 调用的代码。但是,用户无法直接访问此生成的代码。底层代码仍然隐藏,限制了平台产品之外的定制机会。


    阿庇安

    Appian 采用独特的方法,使用称为 SAIL(自组装接口层)的专有语言来创建前端接口,并结合 Java 和 BPMN(业务流程模型和表示法)来创建后端逻辑。虽然 SAIL 类似于其他前端语言,但它仍然特定于 Appian 平台,并且无法在该平台之外访问。同样,Appian 生成的 Java 和 BPMN 代码仍然对开发人员隐藏。相反,Appian 提供了一系列预构建的组件和 API,开发人员可以利用它们来扩展平台的功能。


    造浪机

    WaveMaker提供了一种独特的方法,可以访问平台生成的前端和后端代码。该代码基于流行的开放标准堆栈,包括 Angular、React Native、Java 和 Spring。生成的代码是人类可读的,并在每一层提供扩展,允许使用 Eclipse 或 IntelliJ 等 IDE 自定义和编辑代码。 WaveMaker 使用元数据驱动的代码生成,虽然可以编辑生成的代码,但可能会使平台或应用程序堆栈升级变得复杂。生成的后端代码是纯Java,不包含WaveMaker特定的语法,为定制和扩展提供了灵活的画布。此外,WaveMaker 还提供用于处理小部件状态、事件、数据处理等的前端扩展,以及用于自定义身份验证、数据拦截、API 编排和 API 创建的后端扩展。


低代码的代码增强世界


在软件开发的动态环境中,低代码平台为快速应用程序创建和创新提供了一条有前途的途径。这些平台简化了开发过程,使其可供更广泛的用户使用,同时还使专业开发人员能够扩展和定制应用程序以满足特定需求。然而,低代码的诱惑也伴随着潜在供应商锁定的挑战。组织必须仔细评估低代码平台,考虑代码可访问性、定制功能和部署独立性等因素。最终,低代码平台内的代码自由度可以显着影响组织在不断变化的数字环境中适应、发展和繁荣的能力。可视化开发和代码可访问性之间的平衡代表了创新和灵活性的交集,创造了一个低代码使开发人员能够释放其全部创造潜力的世界。在低代码和代码之间的这种共生关系中,软件开发的未来拥有令人兴奋的可能性。