本文提到的方法使开发团队能够将 Web 应用程序开发时间减少 50% 以上。此外,开发人员可以完全控制源代码,开发具有复杂业务逻辑的领域驱动应用程序,并且很容易调试。最后,开发人员在开发 Web 应用程序时使用开放性技术,消除了职业流动性受限的问题。总之,为专业 Web 应用程序开发者构建低代码平台消除了专有低代码平台的缺点,同时保留了其快速开发应用的优势。
本文最初发布于 fastCode 博客,由 InfoQ 中文站翻译并分享。
使用开源的前端、后端框架从头开始开发企业级 Web 应用程序会花费很长时间。如今,客户正在寻找快速而经济的解决方案,并趋向于使用无代码和低代码的应用开发平台。在这个无代码和低代码平台的新世界中,全栈开发人员如何才能茁壮成长?
无代码和低代码平台
这些平台的其中一个目标是,利用更广泛的非技术和半技术员工来增加可用的 Web 应用程序开发人员。供应商开发了无代码平台,供非技术人员用来构建简单的应用程序;开发了低代码平台,供具有基本技术技能(如 SQL、JavaScript)的员工用来开发更复杂的企业应用程序。其次,与传统的 Web 应用开发方法相比,这些平台可以减少 50% 以上的 Web 应用开发时间。
目前,有大量的供应商在无代码和低代码的细分市场竞争。无代码平台供应商包括 AppSheet(谷歌)、Betty Blocks、QuickBase、Airtable、Bubble 和 Microsoft PowerApps。低代码平台供应商包括 Microsoft PowerApps、OutSystems、Mendix、Salesforce Lightning platform、Nintex、Appian 和 Pegasystems。
我们不会讨论无代码平台,因为它们迎合非技术人员的需求,用于开发简单的应用程序。作为一名 Web 开发人员,你不太可能被要求在无代码平台上构建 Web 应用程序。
另一方面,低代码平台被用来开发比较复杂的应用程序。对于习惯于使用开放性技术(如前端和后端框架)开发应用程序的专业 Web 开发人员来说,使用这些低代码平台开发 Web 应用程序有几个缺点。 这里有一篇专业Web 开发人员撰写的博文,讲述了他在这些低代码平台上工作的经历。
问题1:无法控制源代码
低代码平台为开发Web 应用程序提供了视觉隐喻。甚至应用程序的业务逻辑也是通过拖放代码控制语句(如if/then/else)来实现的。因此,在这些平台上工作的开发人员几乎无法控制源代码。不控制源代码至少会带来两个问题:(a)开发具有复杂业务逻辑的领域驱动应用程序很有挑战性;(b)调试问题会非常困难和令人沮丧。
问题2:职业受限
对于专业的Web 开发人员来说,基于低代码平台的全职工作可能会限制他们的职业发展。他们将失去当前在开放性编程语言和框架方面的技术技能,而获得专有低代码平台的技能。这个专有的低代码平台可能没有被雇主广泛采用,这是当前任何特定的低代码平台都面临的情况。在这种情况下,开发人员的低代码平台技能只适合于使用同样低代码平台的其他雇主。这严重限制了开发人员的职业流动性。
有没有更好的选择?有的。为什么不构建一个面向专业Web 应用程序开发人员的低代码平台,既满足雇主对速度的需求,又满足开发人员对控制和职业流动性的需求呢?我们如何做到这一点?请继续阅读…
自动化样板代码生成
在开发Web 应用程序时,需要进行大量的剪切/ 粘贴/ 修改工作。
我开发的大多数应用程序都使用了N 层架构。在这种架构中,要在数据库表(实体)上提供用于CRUD 操作的REST API,我们需要开发实体代码、DAO(数据访问对象)层、服务层和REST 控制器层。类似地,要创建让终端用户可以执行CRUD 操作的UI 界面,我们需要开发UI 组件和与后端REST API 交互的前端服务层。在我们针对单个数据库表(实体)完成了这项工作后,就要对数据库模式中的每个表重复类似的工作。想象一下,不得不为50 个数据库表做这项工作——这是一项冗长且容易出错的工作。
更好的方法是自动化样板代码的生成。为了实现自动化,我们可以开发一个应用程序生成器,它读取数据库模式并生成后端和前端代码,从而使终端用户可以在数据库表(实体)上执行CRUD 操作。
提供功能横切关注点扩展
随着时间的推移,我注意到,Web 应用程序有许多跨应用程序重复出现的功能横切关注点。举例来说,包括身份验证和授权、文档管理、事务性电子邮件、作业调度器、用户注册和嵌入式报表。我参与开发的几乎每个Web 应用程序都需要这些功能。每次,我的开发团队都是重新发明轮子,从头开始构建这些横切关注点,因为我们从未想过构建通用、可定制、可跨Web 应用使用的功能横切关注点——这浪费了多少精力和时间啊!
如果我们已经构建好功能横切关注点的代码库,那么我们就可以在每个Web 应用程序中重用并根据需要定制它。
提供可视化开发工具
开发企业级应用程序涉及开发自定义功能,例如设计数据库模式或领域模型,为非CRUD 操作构建自定义界面,构建企业特色的主题(颜色、字体),以及开发与外部系统的集成。
专业开发团队可以通过使用可视化开发工具进一步减少应用程序开发的时间和成本,这些工具可以加速这些自定义功能工件的开发。
支持开发团队的首选技术栈
在开发企业级应用程序时,专业开发团队对使用的开放性技术有特定的偏好,例如前端和后端框架、对象关系映射工具、UI 组件框架和依赖项管理系统。团队首选这些特定的技术,可能是因为它们是企业架构的标准,也可能是因为大多数团队成员都有使用这些技术的经验。
通过支持开发团队选择的特定技术,为专业开发人员提供低代码平台可以帮助提高而不是降低应用程序开发的速度。
小 结
上面提到的方法使开发团队能够将Web 应用程序开发时间减少50% 以上,类似于专有的低代码平台。此外,开发人员可以完全控制源代码,开发具有复杂业务逻辑的领域驱动应用程序,并且很容易调试。最后,开发人员在开发Web 应用程序时使用开放性技术,消除了职业流动性受限的问题。
综上所述,为专业Web 应用程序开发者构建低代码平台消除了专有低代码平台的缺点,同时保留了其快速开发应用的优势。
查看英文原文:
https://getfastcode.com/2020/08/09/accelerating-web-app-development/
关注我并转发此篇文章,私信我“领取资料”,即可免费获得InfoQ价值4999元迷你书!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。