翻译自:<https://dzone.com/articles/understand-no-code-vs-low-code-application-develop> ,有删改。

在同客户和业界人士探讨“更高效率的软件开发方式”时,我发现大多数人并不清楚“低代码”和“无代码”之间的区别。低代码和无代码开发平台都提供了无需编写代码即可开发软件应用程序的能力,而且厂商都在突出“高生产率”这一卖点来争夺市场,甚至有无代码厂商宣称“无代码”是“低代码”的进化版。事实真的如此吗?

相信当您充分了解这两种技术后,就会发现无代码和低代码对于使用者来说是完全不同的技术方案。无代码专注于简单场景,而低代码则凭借扩展性和集成能力的优势,能够承载企业级核心业务。我认为弄清楚这个两个概念,并理解两个概念中每个概念的真正含义及应用场景,对寻求提升软件开发效率的软件公司或企业IT部门来说至关重要。

看起来很相似

就像我在文章开头里提到的,低代码和无代码开发平台都提供了无需编写代码即可开发软件应用程序的方法,这点让两者看起来很相似。

(无代码开发的可视化界面,图片来自网络)

面对绝大多数应用场景,两者都不需要开发人员掌握传统编程语言的任何知识,而是直接提供了可视化的开发方法。开发者从屏幕上选择所需的功能组件,并将其拖拽到可视化流程里的方式完成应用开发。这种可视化方法大幅拉低了软件开发的技术门槛,让普通IT人员,甚至业务人员都可以成为开发者,直接开发并交付应用程序。这就是他们之间的相同之处。

(低代码开发的可视化界面,来自活字格官网)

但实际上有很大不同

虽然低代码和无代码都是在可视化的开发应用系统,但是在系统规模和应用行业上有根本的区别。

对于只希望解决简单功能的业务的用户而言,无代码应用程序开发平台可能非常有用。无代码平台是简单的工具,非常适合构建针对特定场景的小型应用程序,如问卷调查等。如果这能够满足您的需求的话,那也不错。

(使用无代码工具开发调查问卷应用,图片来自网络)

但是大多数无代码工具的问题在于,您在其上开发的应用程序经常无法很好地扩展,并且集成能力非常有限。那是因为相比于低代码,无代码平台为了降低复杂度,没有考虑更广泛的企业体系结构,并且大多数无代码平台上可使用的集成工具往往很有限。因为无代码的这些局限,在您将应用要扩展到企业级,甚至承担企业核心业务场景时,很可能会遭遇下列挑战:

  • 系统架构:由于开发者对企业应用的体系结构缺乏经验,随意追加应用程序会让企业IT体系结构的风险增加。更麻烦的是,大多数无代码平台都需要部署到公共云,不能灵活地部署到私有云或本地,这对于很多企业场景,尤其是中大型企业的核心业务场景来说,是很难被接受的。
  • 可扩展性:因为无代码平台倾向于运营效率,所以它们不具备关注用户体验的能力,并且无法连接到已有系统,还有不支持同第三方系统或本地系统集成的问题。
  • 统筹:由于使用无代码工具构建的应用程序具有独立性。如何将该应用生成的数据与其他系统的数据汇总到一起,就成为了一个普遍的挑战。这种现象被称为“数据孤岛”,是企业信息化中最难解决的顽症之一。

相比之下,低代码平台则可以很好帮你解决这些问题。低代码平台往往可以同主流技术保持同步,它们提供灵活的体系结构,支持外部数据库,提供开放的API扩展平台等技术能力。正是这些特性,让低代码完全具备支撑企业核心业务的能力,同时还能与企业其他系统(如ERP、MES等)深度集成。此外,以活字格为代表的部分低代码开发平台的部署方式更加灵活,同时云端和本地部署,特别适合国内企业对于“系统可控性”的要求。

(低代码应用与用友U8+深度集成,图片来自活字格官网)

确定哪种工具适合您的业务

无须讳言,无论您决定采用哪种平台企业都要面临挑战。无代码开发平台被业界认为过于简单以致无法支持复杂的应用场景;对于非专业开发人员而言低代码开发平台则过于复杂。

如果您选择了“无代码”,您的业务人员确实具备了开发应用的能力,但功能需求超出了业务开发人员的能力,或者扩展性、部署方式等非功能需求无法满足企业的要求,您要怎么办?多数情况下,企业决策者不能接受你只满足了他99%的需求,他们需要你100%的完成这个项目,此时您恐怕只能再找一个外包公司从头再来了。

如果您选择了“低代码”,您是否有足够的IT人员(非专业软件开发人员)来承担应用开发工作?如果没有的话,您恐怕只能依赖现有的专业开发者。那么评估传统开发方式与低代码开发方式的成本差异,再对比学习低代码开发平台的成本,才能做出一个客观的决策。虽然绝大多数场景下,选择低代码都会大幅降低整体成本。

(使用低代码开发的MES系统,图片来自活字格官网)

不要忽略“协同开发能力”

在决定采用哪种方法时,您需要考虑的因素显然不仅限于技术本身。与其他所有的软件开发技术一样,您必须考虑可交付的成果与用户的实际需求的满足程度。尤其是面对复杂的、承载关键业务的系统,只有通过在应用程序开发过程中密切协作,提高效率,才能顺利交付更大更复杂的企业应用。所以,在考虑选择低代码或无代码解决方案,对比各开发平台的差异时,我们建议您详细思考评估以下问题:

  • 该解决方案如何推广,如何促进业务功能开发,如何提高开发人员间的沟通与协作?
  • 解决方案是否包含了协作开发能力,包括但不限于代码共享、版本管理、分支管理等常用功能?
  • 高级开发人员(比如专业开发者)能不能使用该工具规定开发规范和将复杂业务逻辑打包后供给IT人员或业务人员重复调用?

(版本管理、分支管理与协同开发,图片来自网络)

总结

无代码和低代码都是能够帮助开发者快速构建企业应用的先进工具。但“无代码”并不是“低代码”的进化版。受限于扩展性和系统集成能力,无代码专注于简单场景,而低代码则可以承载企业核心业务需求。当您需要在无代码和低代码中做出选择时,除了应用场景外,还需要充分考虑各平台的部署方式、协作开发能力等差异,找出适合自己团队与客户需求的方案。