低代码平台和全代码开发人员-地狱般的配对?

2020-08-10 11:23:04

使用开源前端和后端框架从头开始开发它们需要很长时间。如今,客户正在寻找快速、经济高效的解决方案,并倾向于使用无代码和低代码的应用程序开发平台。全栈开发人员如何才能在这个无代码和低代码平台的新世界中茁壮成长呢?

这些平台的目的之一是通过利用更广泛的非技术和半技术员工队伍来增加可用的Web应用程序开发人员池。供应商开发了供非技术员工用来构建简单应用程序的无代码平台,以及供具有基本技术技能(如SQL、JavaScript)的员工用来开发更复杂的企业应用程序的低码平台。其次,与传统的Web应用开发方式相比,这些平台可以减少50%以上的Web应用开发时间。

目前,有大量的供应商在无代码和低代码细分市场上竞争。无代码平台供应商包括AppSheet(Google)、Betty Block、QuickBase、Airtable、Bubble和Microsoft PowerApps。低码平台供应商包括Microsoft PowerApps、OutSystems、Mendex、Salesforce Lightning Platform、NINTEX、Appian和Pegassystems。

我们不会讨论无代码平台,因为它们迎合非技术员工,并且用于开发简单的应用程序。作为一名Web开发人员,您不太可能被要求在无代码平台上构建Web应用程序。

另一方面,低码平台被用来开发更复杂的应用程序。对于习惯于使用开放技术(如前端和后端框架)开发应用程序的专业Web开发人员来说,使用这些低码平台开发Web应用程序有几个缺点。以下是一位专业Web开发人员发布的一篇博客文章,讲述了他在其中一种低码平台上的工作经历。

低码平台为开发Web应用程序提供了一种视觉隐喻。甚至应用程序的业务逻辑也是通过拖放代码控制语句(如IF/THEN/ELSE)来实现的。因此,在这些平台上工作的开发人员几乎无法控制源代码。无法控制源代码至少会产生三个问题:(A)开发具有复杂业务逻辑的域驱动应用程序具有挑战性,(B)调试问题可能非常困难和令人沮丧。

对于专业的Web开发人员来说,全职在低代码平台上工作可能会限制他们的职业生涯。他们将失去目前在开放编程语言和框架方面的技术技能,而在专有的低代码平台上获得技能。假设这种专有的低码平台没有在雇主中广泛采用,目前任何特定的低码平台都是这种情况。在这种情况下,开发人员的低码平台技能只能在同样采用低码平台的另一家用人单位使用。这严重限制了开发人员的职业流动性。

有没有更好的选择?为什么不为专业的Web应用程序开发人员构建一个低代码平台,既满足雇主对速度的需求,又满足开发人员对控制和职业流动性的需求?我们怎样才能做到这一点呢?

我开发的大多数应用程序都使用了N层架构。在此体系结构中,要为数据库表(实体)上的CRUD操作提供REST API,我们需要为实体、DAO(数据访问对象)层、服务层和REST控制器层开发代码。类似地,要创建允许最终用户执行CRUD操作的UI屏幕,我们需要开发与后端REST API交互的UI组件和前端服务层。完成单个数据库表(实体)的此工作后,必须为数据库架构的每个表重复类似的工作。想象一下,必须对50个数据库表执行此操作-这是一项乏味且容易出错的工作。

更好的方法是自动生成样板代码。要实现自动化,我们可以开发一个应用程序生成器,该生成器读取数据库模式并生成后端和前端代码,以允许最终用户对数据库表(实体)执行CRUD操作。

随着时间的推移,我注意到Web应用程序有许多跨功能的关注点,这些关注点在应用程序中重复出现。功能横切关注点的示例包括身份验证和授权、文档管理、事务性电子邮件、作业调度程序、用户注册和嵌入式报告。我参与开发的几乎每个Web应用程序都需要这些功能。在每种情况下,我的开发团队都重新发明了轮子,并从头开始构建这些横切关注点,因为我们从来没有想过构建可以跨Web应用程序使用的通用的、可定制的功能横切关注点-这是多么浪费精力和时间!

如果这些功能横切关注点的基本代码已经构建并可用,我们就可以重用它,并根据需要为每个Web应用程序定制它。

开发企业应用程序涉及开发定制功能,例如设计数据库架构或域模型、为非CRUD操作构建定制屏幕、构建特定于企业的主题(颜色、字体),以及开发与外部系统的集成。

专业开发团队可以通过使用可视化开发工具来加速这些自定义功能工件的开发,从而进一步减少应用程序开发时间和成本。

在开发企业应用程序时,专业开发团队对使用的开放技术有特定的偏好,如前端和后端框架、对象关系映射工具、UI组件框架和依赖项管理系统。团队更喜欢特定的技术,因为它们是企业架构标准,或者因为大多数团队成员都有使用这些技术的经验。

通过支持开发团队选择的特定技术,面向专业开发人员的开放低码平台可以帮助而不是降低应用程序开发的速度。

上面提到的构建Web应用程序的方法,使开发团队可以将开发Web应用程序的时间减少50%以上,类似于专有的低代码平台。此外,开发人员可以完全控制源代码,消除了无法开发具有复杂业务逻辑和轻松调试问题的域驱动应用程序的问题。最后,开发人员在开发Web应用时使用开放技术,消除了限制职业流动性的问题。

总而言之,为专业Web应用程序开发人员构建的低代码平台消除了专有低代码平台的缺点,同时保留了它们快速开发应用程序的优势。