通常人们谈及“低代码”平台时,总会提起“非专业开发人员”(citizen developer)。非专业开发人员无需具体编写代码,依靠图形化界面就能创建企业应用。本文另辟蹊径,意在综述当前存在的多种风格各异的低代码平台,以及这些平台对专业开发人员的重要性。
低代码平台家族
人们对于“低代码”的模糊认识,部分源自于对低代码开发平台的误解。通常而言,低代码开发平台源自于两大方向。即低代码平台并非凭空出现的,而是逻辑演变自两种各异的现有完备技术:
工作流和业务过程管理(BPM,business process management)平台。BPM平台是低代码平台的先驱,其最基本的功能就是将业务逻辑封装在业务流程模型中,而不是编程实现逻辑。BPM平台支持使用标准编辑器(例如,在BPM平台中广泛使用的BPMN2)以图形化方式设计业务逻辑,之后提供事务流程引擎执行模型,这种方式称为模型驱动开发。如今,大多数BPM平台都添加了一些工具和框架,用于构建完备的业务应用。典型的BPM平台包括Appian、Pega、K2、Bizagi和Bonita。
代码生成平台。代码生成平台提供了可视化的应用开发环境,简化了应用创建。完成应用后,平台会自动生成可执行代码。目前,许多此类平台还添加了一些工作流功能,完善原始的Webflow方法,设计业务应用逻辑。一些广为人知的代码生成平台包括Outsystems、Kony和Progress Kinvey
随着软件市场的成熟,低代码用户现在可考虑更多的选择。他们面对的不再只是香草味或巧克力味冰激凌,而是至少“31 种口味”(译者注:指 Baskin-Robbins 冰激凌最早提出的商业理念,每天一种新口味)的低代码平台。那么人们该如何选择?选择低代码解决方案可能并非选择本月的 Baskin-Robbins 冰激凌风格那么容易。选择一个合适的低代码平台,需要从以下标准做出考虑,还需要考虑这些标准对用户需求的影响:
适用范围:流程自动化、智能自动化、微服务编排、案例管理、业务应用开发等。
目标人物:非专业开发人员、专业开发人员,或者是两者兼备的开发人员。
执行方法:如上文所述,设计模型驱动开发、代码生成,或者两者兼而有之。
架构方法:基于架构、组件或服务、可嵌入功能、平台可扩展性,可用API等。
项目复杂性:小/中/大项目、可扩展性、容错和性能、同步或异步执行等。
部署选项:内部部署、公共/私有/混合云、SaaS、PaaS等。
集成选项:云集成、遗留系统集成、DevOps工具等。
学习和提升资料:免费教学、开源、教程、GitHub存储库实例等。
专业开发人员的地位不可替代
在没有专业开发人员参与的情况下,由非专业开发人员构建关键应用,下面我们对此理念展开认真分析。
一些人支持针对非专业开发人员的低代码平台。在他们看来,在对所有所需项目提供支持时,使用低代码平台可解决可用开发人匮缺的问题。当面对企业应用没有足够的专业开发人员时,是否有可能用非专业开发人员填补空白?或者甚至使用非专业开发人员取代专业开发人员?但我绝对不这么认为。即使上述想法是可行的,使用非专业开发人员仅仅是通过提出一个更大的问题去解决另一个问题。对于负责企业应用的 IT 团队,在面对那些由非技术人员维护和开发的应用时,最终依然需要解决如何从应用中获得最佳性能的问题。
坦率地说,如果没有专业开发人员参与开发,可能是非常危险的。特别可怕的是,非专业开发人员可能正在管理核心应用的实现,例如,难以想象银行会在数字转型计划中依靠低代码平台!
低代码平台的真正强大之处并非在于消除编写代码,而是通过提供可提高可重用性和减少代码需求的技术、框架和方法,帮助非专业开发人员和专业开发人员。
专业开发人员也需要借助低代码平台,使他们能够使用正确的技术提高生产力,同时实现与非专业开发人员的协作。
专业开发人员期待从低代码平台中获取什么?
对于专业开发人员,至少他们有望从五个基本方面上对使用低代码平台开发企业应用有所收获,即可扩展性(extensibility)、图形化工具及编码选项、DevOps 和持续交付、部署选项和可伸缩性(scalability)。
我将在这个列表中添加第六项,即由开源提供的优势,包括对做出决策之前试用平台的支持、降低学习曲线,以及作为一员参与共享社区。
通过可扩展性实现灵活性,进而提供更大自由
开发人员和其他人一样都喜欢自由。对于一个构建应用的完整平台,开发人员应可以从中选择他们仅需的组件。例如,开发人员仅需流程引擎,或者流程引擎和用户界面设计器。平台应提供多种灵活性,其中包括:通过可扩展性提供扩展库、框架或平台并对其进行改进的自由。例如,通过向第三方系统添加新连接器或添加缺少的 REST API;提供将一个服务或组件替换为另一个服务或组件的自由。例如,替换默认的身份验证或 SSO 服务;提供将当前平台与其他首选解决方案结合的自由。例如,使用特定的事务管理器、数据库、应用服务器或持续集成工具。对于面向开发人员的低代码平台,仍然需要提供是否支持编码的自由。
为异构团队提供支持图形化和编码混用的工具
开发人员可能喜欢手工编码,尽管他们通常并不喜欢重新制造轮子。如果能有一种易于使用、功能强大且图形化的方式设计网页,或者采用图形化方式配置流程参数,那么自然会有开发人员乐意使用它。当然,也总会有人不想甚至不需要这类“易用”的工具。如果给开发人员自由,可以选择用他们喜欢的 Javascript 库创建该网页,或者使用 XML 文件来配置流程参数,那么真正喜欢编码的开发人员也可以使用这个低代码方法。面向开发人员的低代码平台,为具有不同偏好和技能水平的技术团队提供了有效的支持。
为协作和持续集成提供工具
数字化转型的关键在于快速构建新功能、判断新功能的有效性,并根据反馈和利用敏捷方法做出改进。如果没有专业开发人员和 DevOps 团队的参与,那么如何运作呢?当前的软件构建方式,是集成一些原生的技术,如使用 Githubf 实现协作和代码库管理的、使用 Docker 实现自动交付、使用 Jenkins 实现持续集成、使用 Ansible 实现应用和平台的配置和部署。低代码平台应该支持开发人员使用他们喜欢的方法和框架。
支持多学科开发团队(multidisciplinary development team)
在企业实施中,分布式开发团队工作的变更管理工具至关重要。如上所述,开发团队通常由承担不同职能的人员组成,例如前端开发和后端开发,他们更倾向于使用混合开发方式。一些开发人员可能更喜欢使用图形化工具开发用户界面,而另一些开发人员更喜欢使用 HTML5 手动编码,还有一些人更喜欢使用 JavaScript。低代码平台支持团队中的异构协作,有助于解决“缺乏可用的开发人员来支持所有需要完成的项目”的问题。
灵活选择架构和可扩展性
应用无论是本地部署、通过 SaaS 部署,还是在公共、私有云或混合云上部署,专业开发人员都希望能够清楚地了解,将使用低代码平台构建的应用的体系结构。这使得专业开发人员能够针对性能和扩展对应用进行建模和设计,改善应用程序组件和服务间的通信,以及将用户界面与数据和业务流程分离。开发人员若想构建可在不同环境中运行和扩展的企业应用,需清晰了解具有可扩展功能和自由编码的体系架构,这至关重要。
支持在做出决策前试用、学习并分享
开发人员当然和其他所有人一样,更愿意参与到选择所用开发工具的过程中。开源和免费增值模式平台当然是优先的选择。开源产品的优势在于任何人都可以下载并上手使用。通常开源产品背后多具有社区支持,可提问、反馈并分享最佳实践。
实现高度协作的低代码平台
在企业的数字化转型计划中,为建立创新的企业应用,不仅需要编写代码,同样需要一个由业务用户、技术人员和最终用户组成的优秀团队。为增强数字化转型团队的能力,选择合适的低代码平台意味着团队需要清楚地了解工具、扩展点、集成功能、API、所使用的底层技术,以及平台所提供的持续集成和部署选项。
目前现状是,所有复杂的低代码项目实施必须有专业开发人员的参与。专业人员的参与并不会影响到开发速度等任何使用这些平台的优势,并且有助于人们聚焦于真正的问题,即如何在低代码平台的环境中更好地为专业开发人员服务,以及如何改善包括非职业开发人员在内的不同项目角色间的协作。
作者简介
Miguel Valdes Faura 是 Bonitasoft 的首席执行官兼联合创始人,负责引领公司的发展方向,即利用 Bonita BPM(业务流程管理,business process management)的数字业务自动化平台并充分发挥开发团队的潜力,开发具备无缝融合、吸引用户并提供个性化体验的应用。
在加入 Bonitasoft 之前,Valdes Faura 负责欧洲软件系统主要供应商 Bull Information Systems 的 BPM 部门的研发、售前和支持。Valdes Faura 是 BPM 领域公认的思想领袖,对开源社区建设充满热情。他常在 O’Reilly 全球扩展峰会和网络峰会主办的国际会议上发表演讲,并在福布斯 CNN 和 Mashable 等媒体上发表演讲。Valdes Faura 在 2014 年获得了著名的 CEO 世界奖,并在 2018 年获得了工作流管理联盟和 BPM.com 的“年度业务转型人物”。
查看英文原文: The Many Flavors of “Low-Code”
评论 1 条评论