最近公司想推行无代码开发,让业务人员自己搭建系统。减少对技术部门的依赖,提高开发效率。我作为技术人员。被安排去调研和试用各种无代码平台,看看能不能在公司推广。

于是,我花了一个月时间。试用了十几个无代码平台,包括国外的和国内的。做了几个demo,有简单的表单收集。也有复杂的业务流程,最后得出结论:无代码开发。没有想象中那么美好。从入门到放弃,是大部分人的结局。

当然,这不是说无代码开发一无是处。它在某些场景下,确实能提高效率。降低开发门槛。但它也有很多局限性,很多坑。不是所有场景都适合,也不是所有人都能用好。

本文分享我这一个月的经历和思考,聊聊无代码开发的优点、缺点、适用场景、坑,以及它的未来。希望能给打算用无代码开发的朋友一些参考,也欢迎大家交流讨论。

一、什么是无代码开发

在说经历之前,先简单介绍一下什么是无代码开发,帮助不了解的朋友有个概念。

无代码开发,顾名思义。就是不用写代码,就能开发出应用程序。它通过可视化的界面。拖拽式的操作,让不懂编程的人,也能快速搭建出应用。比如表单、报表、工作流、小程序、网站等。

无代码开发的核心理念,是"全民开发"。让每个人都能成为开发者,不需要依赖专业的程序员。就能把自己的想法变成产品。它的目标,是降低开发门槛。提高开发效率,解决企业里"业务需求多,技术人员少"的矛盾。

和无代码相关的,还有一个概念。叫低代码开发。低代码和无代码的区别,在于低代码还是需要写一点代码的。只是比传统开发写得少,适合有一定编程基础的人;而无代码是完全不用写代码。适合完全不懂编程的人。当然,这两个概念的边界越来越模糊。很多平台既是无代码,也是低代码。既可以不用写代码,也可以写代码扩展。

无代码开发,最近几年非常火。不管是国外还是国内,都涌现出了很多无代码平台。融资也很火爆,被认为是软件开发的未来趋势之一。但同时。也有很多人质疑,认为无代码开发是噱头。是玩具,做不了复杂的应用,成不了气候。

我这次调研,就是想看看。无代码开发到底是真有用,还是噱头,能不能在我们公司推广。

二、我的试用经历

我花了一个月时间,试用了十几个无代码平台,国外的有Airtable、Notion、Webflow、Bubble、Zapier等,国内的有宜搭、明道云、氚云、简道云、轻流、Teambition、飞书多维表格等。每个平台,我都花了几天时间,看文档,看教程,做demo,体验它的功能和易用性。

下面说说我试用的整体感受,以及几个印象比较深的平台。

1. 入门确实简单,做简单应用很快

无代码平台最大的优点,就是入门简单。做简单应用很快。比如做一个表单收集,做一个简单的信息管理系统。做一个简单的工作流,基本上花几个小时。甚至几十分钟。就能做出来,不需要写一行代码。

我试用的第一个平台,是国内的某无代码平台。我花了一个下午,就做了一个简单的员工信息管理系统。有员工信息的增删改查,有简单的统计报表。有部门管理,有角色权限,虽然功能比较简单。但确实能用。而且完全没有写代码。

当时我很惊喜,觉得无代码开发真的很强大,业务人员自己就能做系统,以后技术部门就不用做这些简单的系统了。可以专注于更复杂的系统。

但随着试用的深入,我发现。无代码平台,做简单应用确实很快。但做复杂应用,就没那么简单了。甚至比写代码还麻烦。

2. 做复杂应用,比写代码还麻烦

无代码平台,做简单的表单、报表、工作流。确实很快,很方便。但如果要做复杂的应用。比如复杂的业务逻辑、复杂的权限控制、复杂的报表、复杂的集成、复杂的交互。就会发现,无代码平台的限制很多。很多功能实现不了。或者实现起来很麻烦,比写代码还费劲。

比如,我想做一个复杂的审批流程。有多个分支,有条件判断。有会签,有或签。有退回,有撤回。有催办,有超时处理。在无代码平台上。我发现,简单的审批流程能做。但复杂的审批流程。要么实现不了,要么配置起来非常麻烦。要拖很多节点,配很多条件。而且很容易出错。改起来也很麻烦。而如果用代码写。其实就是几个状态机的问题,写起来很灵活,改起来也很方便。

再比如,我想做一个复杂的报表。有多维度的统计,有复杂的计算公式。有图表,有导出。有钻取。在无代码平台上,我发现。简单的报表能做。但复杂的报表,要么实现不了。要么配置起来很麻烦。而且性能很差,数据量大了就卡。而如果用代码写。可以用专业的报表工具。或者自己写SQL。写前端图表,功能强大,性能也好。

还有,复杂的权限控制。复杂的业务逻辑,复杂的第三方集成。复杂的用户交互,在无代码平台上,都很麻烦。甚至实现不了。

我后来做一个比较复杂的demo,花了一个星期。才做了一半。而且很多功能实现不了。或者实现得很别扭。当时我就想,如果用代码写。可能两三天就写完了。而且功能更强大。更灵活,性能更好。从那时候起。我就开始对无代码开发产生了怀疑,觉得它可能只适合做简单的应用,不适合做复杂的应用。

3. 学习成本不低,业务人员未必能学会

无代码开发的一个核心理念,是"全民开发",让不懂编程的业务人员,也能自己做应用。但我试用下来发现,无代码平台的学习成本。其实不低,业务人员未必能学会。尤其是做复杂一点的应用。

简单的表单、简单的列表,业务人员可能学一学就能做。但如果涉及到工作流、权限、报表、公式、关联、集成这些概念,业务人员就很难理解了,更不用说灵活运用了。这些概念。其实和编程里的概念是对应的。比如工作流对应状态机,权限对应访问控制,报表对应SQL和数据可视化,公式对应表达式,关联对应数据库的表关联,集成对应API调用。不懂编程的人,理解这些概念。其实很困难,更不用说用这些概念来搭建复杂的应用了。

我在公司里,找了几个业务人员。让他们试用无代码平台,做一个简单的应用。结果。他们花了好几天,才做出一个非常简单的表单。而且很多功能都不会用。问题一大堆。需要我不断地指导。他们普遍反映,无代码平台看起来简单。但实际上挺复杂的。很多概念不懂,很多功能不会用,学起来挺费劲的。

这让我意识到,无代码开发。并不是"零门槛",它只是降低了门槛。从"会编程"降低到了"会用复杂的软件"。但即使是"会用复杂的软件",对很多业务人员来说,也不是一件容易的事情。尤其是做复杂的应用。

而且,即使业务人员学会了。做出来的应用,质量也参差不齐。很多是"玩具应用",能用。但不好用。性能差,体验差。维护困难。最后,还是需要技术人员来收拾烂摊子,反而增加了技术人员的负担。

4. 性能和扩展性,是硬伤

无代码平台,还有一个硬伤,就是性能和扩展性。

性能方面,无代码平台做出来的应用。在数据量小的时候,还可以。但数据量大了。就会很卡,很慢。比如。一个表单,有几万条数据。查询、统计、导出,就会很慢。甚至超时。因为无代码平台。底层是通用的架构。不是针对具体应用优化的。所以性能上会有损耗,数据量大了,问题就显现出来了。

我做的一个demo,模拟了10万条数据。结果查询的时候,要等十几秒。统计报表的时候,要等几十秒。导出的时候,直接超时了。而如果用代码写。针对这个应用做优化,加索引。做缓存,分页查询。性能会好很多,查询可能只要几百毫秒。统计只要几秒,导出也很快。

扩展性方面,无代码平台的限制更多。比如。你想做一个复杂的功能,平台不支持。你就没办法,只能等平台更新。或者用很别扭的方式绕过去。或者干脆放弃。再比如。你想和某个第三方系统集成,平台不支持这个系统的接口。你也没办法,只能手动导入导出数据。很麻烦。还有,你想做定制化的用户界面。平台的UI组件有限,样式固定。你很难做出自己想要的界面,只能用平台提供的模板。看起来千篇一律,体验不好。

而且,无代码平台做出来的应用。是运行在平台上的,你没有源代码。也不能部署到自己的服务器上(大部分平台是这样),数据也存在平台上。这就有 vendor lock-in(供应商锁定)的问题。一旦你用了某个平台,以后想迁移到别的平台。或者迁移到自己开发的系统。就会非常困难,数据、配置、逻辑。都很难迁移。而且,如果平台涨价了。或者停止服务了。你就很被动,要么接受涨价。要么重新做一遍,损失很大。

这些性能和扩展性的问题,对于简单的、小型的应用来说。可能不是问题。但对于复杂的、大型的、关键的应用来说,就是硬伤,无法接受。

5. 几个印象比较深的平台

试用了十几个平台,有几个印象比较深,简单说一下。

Airtable,国外的。是电子表格和数据库的结合,功能强大。灵活度高,适合做数据管理、项目管理、内容管理等。它的优点是灵活。像Excel一样简单,又像数据库一样强大。生态很好,有很多集成和插件。缺点是国内访问慢。价格贵,复杂的工作流和权限支持不好,不适合做复杂的业务系统。

Notion,国外的。是笔记、文档、知识库、项目管理的结合,功能强大。灵活度高,适合做知识库、项目管理、团队协作等。它的优点是灵活。块编辑器很强大,能做很多事情。生态好。缺点是国内访问慢,性能一般。数据量大了卡,不适合做复杂的业务系统和表单收集。

Bubble,国外的。是真正的无代码开发平台。可以做比较复杂的web应用,有数据库、工作流、API、UI组件等。它的优点是功能强大。能做比较复杂的应用,灵活度高。缺点是学习成本高。性能一般,价格贵。国内访问慢,不适合做大型应用。

宜搭,阿里的。国内的无代码平台,和钉钉集成得很好。适合做企业内部的管理系统、审批流程、表单收集等。它的优点是和钉钉集成好,企业级功能比较完善。有审批、权限、报表等。缺点是灵活度一般,复杂的业务逻辑支持不好。UI比较丑,体验一般,有阿里的生态锁定。

明道云,国内的。功能比较全面,有工作表、工作流、权限、报表、API等。适合做企业内部的管理系统。它的优点是功能比较全面,灵活度还可以。支持私有化部署。缺点是学习成本不低,UI一般。性能一般,生态不如大厂的好。

简道云,国内的。主打表单和流程,适合做表单收集、审批流程、简单的管理系统。它的优点是简单易用。表单和流程功能强大,模板多。缺点是灵活度一般。复杂的业务逻辑支持不好,报表功能一般,不适合做复杂的应用。

整体来说,国外的平台。功能强大,灵活度高。生态好。但国内访问慢,价格贵。不适合国内企业。国内的平台,访问快。价格便宜,和国内的办公软件(钉钉、企业微信、飞书)集成好。但功能和灵活度一般。复杂应用支持不好,UI和体验一般,有生态锁定。

三、无代码开发的优点和缺点

试用了一个月,我总结了无代码开发的优点和缺点。

优点:

  1. 入门简单,做简单应用快。简单的表单、报表、工作流,花几个小时就能做出来,不需要写代码,效率很高。
  1. 降低开发门槛。让不懂编程的人,也能做简单的应用,一定程度上解决了"业务需求多,技术人员少"的矛盾。
  1. 可视化开发,所见即所得。拖拽式操作,可视化界面,开发过程直观,容易理解,修改也方便。
  1. 快速验证想法。有了想法,可以很快做出demo,验证想法是否可行,不需要等技术人员排期,适合快速试错。
  1. 维护简单(简单应用)。简单的应用,业务人员自己就能维护,修改字段、调整流程、增加报表,都很方便,不需要依赖技术人员。

缺点:

  1. 复杂应用做不了,或者做起来很麻烦。复杂的业务逻辑、权限、报表、集成、交互,在无代码平台上,要么实现不了,要么实现起来很麻烦,比写代码还费劲。
  1. 学习成本不低,业务人员未必能学会。无代码开发不是零门槛,只是降低了门槛,复杂一点的概念,业务人员很难理解,更不用说灵活运用了。
  1. 性能差,数据量大了卡。无代码平台底层是通用架构,不是针对具体应用优化的,数据量大了,查询、统计、导出都会很慢,甚至超时。
  1. 扩展性差,有供应商锁定。功能受平台限制,平台不支持的就做不了;应用运行在平台上,没有源代码,数据也存在平台上,迁移困难,有供应商锁定的问题。
  1. UI和体验一般,千篇一律。无代码平台的UI组件有限,样式固定,做出来的应用看起来都差不多,体验一般,很难做出定制化的、体验好的界面。
  1. 质量参差不齐,维护困难。业务人员做出来的应用,质量参差不齐,很多是"玩具应用",能用但不好用,性能差,体验差,最后还是需要技术人员收拾烂摊子,反而增加了维护成本。
  1. 安全和合规问题。数据存在第三方平台上,安全和合规有隐患,尤其是敏感数据、重要数据,很多企业不允许放在第三方平台上。

四、无代码开发的适用场景

无代码开发。不是万能的,也不是一无是处。它有它的适用场景。在合适的场景下,它能发挥很大的价值;在不合适的场景下,它就是鸡肋。甚至是灾难。

根据我的试用和思考,无代码开发适合以下场景:

  1. 简单的表单收集和信息管理。比如活动报名、问卷调查、员工信息登记、客户信息管理、固定资产管理等,这些应用逻辑简单,主要是数据的增删改查,用无代码平台做,很快,很方便。
  1. 简单的审批流程和工作流。比如请假审批、报销审批、采购审批、合同审批等,这些应用流程相对标准,不复杂,用无代码平台做,配置起来比较方便,也能满足需求。
  1. 简单的报表和数据可视化。比如销售数据统计、项目进度统计、部门人员统计等,这些报表逻辑不复杂,用无代码平台的报表功能,基本能满足需求,做起来也快。
  1. 内部工具和小应用。比如团队内部的任务管理、日程管理、知识库、文档管理等,这些小工具,用无代码平台做,很快,很方便,能满足团队的个性化需求。
  1. 快速原型和MVP验证。有了新想法,可以用无代码平台很快做出原型或MVP,验证想法是否可行,收集用户反馈,不需要等技术人员排期,适合创业公司和创新项目快速试错。
  1. 非核心、非关键的应用。比如部门内部的小工具、临时的活动应用、短期的项目管理等,这些应用不重要,不核心,即使出问题也影响不大,用无代码平台做,成本低,速度快,很合适。

不适合的场景:

  1. 复杂的业务系统。比如ERP、CRM、OA、电商系统、金融系统等,这些系统业务逻辑复杂,权限复杂,报表复杂,集成复杂,用无代码平台做,要么做不了,要么做起来很麻烦,性能和扩展性也跟不上。
  1. 核心、关键的应用。比如生产系统、交易系统、支付系统、客户系统等,这些应用很重要,出问题会造成严重损失,需要高可用、高性能、高安全,无代码平台满足不了这些要求,不适合用。
  1. 大数据量、高并发的应用。比如有几十万、几百万条数据,或者有很高的并发访问,无代码平台的性能跟不上,会很卡,甚至崩溃,不适合用。
  1. 需要高度定制化的应用。比如需要定制化的UI、定制化的交互、定制化的业务逻辑,无代码平台的灵活性不够,满足不了高度定制化的需求,不适合用。
  1. 需要和多个复杂系统集成的应用。比如需要和ERP、CRM、OA、财务系统等多个复杂系统深度集成,无代码平台的集成能力有限,满足不了复杂的集成需求,不适合用。
  1. 长期维护、持续迭代的应用。比如需要长期维护、持续迭代、不断扩展的应用,无代码平台的扩展性和可维护性有限,随着应用越来越复杂,维护成本会越来越高,最后可能还不如用代码重新写一遍,不适合用。

简单来说,无代码开发,适合"简单、小型、非核心、临时、快速验证"的应用;不适合"复杂、大型、核心、长期、高要求"的应用。

五、为什么很多人从入门到放弃

根据我的观察和经历,很多人试用无代码开发,最后都放弃了,原因主要有以下几个:

  1. 期望太高,失望太大。很多人对无代码开发期望太高,以为它能做所有应用,能取代程序员,能解决所有开发问题。结果试用之后发现,它只能做简单应用,复杂应用做不了,和期望差距太大,于是失望,放弃。
  1. 学习成本比想象的高。很多人以为无代码开发是零门槛,很简单,结果试用之后发现,学习成本不低,很多概念不懂,很多功能不会用,尤其是复杂一点的应用,学起来很费劲,于是放弃。
  1. 复杂应用做不了,或者做起来太麻烦。很多人想用无代码平台做复杂的业务系统,结果做着做着发现,很多功能实现不了,或者实现起来很麻烦,比写代码还费劲,于是放弃,还是用代码写。
  1. 性能和扩展性满足不了。很多人做的应用,数据量一大,并发一高,就很卡,很慢,甚至崩溃,或者想扩展功能,发现平台不支持,满足不了需求,于是放弃。
  1. 做出来的应用质量差,体验不好。很多业务人员做出来的应用,质量参差不齐,UI丑,体验差,性能差,不好用,用户不愿意用,最后还是得技术人员重新做,于是觉得无代码开发没用,放弃。
  1. 供应商锁定,担心风险。很多企业担心用了无代码平台,被供应商锁定,以后迁移困难,数据安全没有保障,平台涨价或者停止服务会很被动,于是不敢深度使用,最后放弃。
  1. 技术人员的抵触。很多技术人员,对无代码开发有抵触,觉得它是玩具,不专业,会抢自己的饭碗,于是不配合,甚至阻挠,导致无代码开发在企业里推不下去,最后放弃。

这些原因,导致很多人对无代码开发。从一开始的兴奋、期待,到后来的失望、放弃,也就是所谓的"从入门到放弃"。

六、无代码开发的未来

虽然无代码开发有很多缺点,很多人从入门到放弃。但我还是认为。它有未来,只是它的未来。不是取代程序员。不是做所有应用。而是作为传统开发的补充,在合适的场景下发挥价值。

未来,无代码开发可能会有以下几个发展趋势:

  1. 和低代码融合,平台能力越来越强。无代码和低代码的边界会越来越模糊,平台会同时支持无代码和低代码,简单的功能不用写代码,复杂的功能可以写代码扩展,兼顾易用性和灵活性。
  1. AI赋能,开发越来越智能。AI技术会越来越多地应用到无代码开发中,比如用自然语言描述需求,AI自动生成应用;AI自动优化性能、自动修复bug、自动推荐最佳实践;AI辅助业务人员理解概念、配置应用,降低学习成本。
  1. 垂直领域的无代码平台会越来越多。通用的无代码平台,很难满足所有行业的需求,未来会出现越来越多垂直领域的无代码平台,比如电商无代码、教育无代码、医疗无代码、金融无代码等,针对特定行业的需求,提供更专业的功能和模板,更好地满足行业需求。
  1. 和传统开发的融合越来越深。无代码开发不会取代传统开发,而是和传统开发融合,技术人员用传统开发做核心系统、复杂系统,业务人员用无代码做简单应用、边缘应用,两者通过API集成,互相补充,共同满足企业的需求。
  1. 私有化部署和开源方案会越来越多。随着企业对数据安全和自主可控的要求越来越高,会有越来越多的无代码平台支持私有化部署,也会出现更多开源的无代码方案,让企业可以自己部署,自己掌控数据和应用,降低供应商锁定的风险。
  1. 全民开发会成为现实,但不是所有人都做复杂应用。未来,会有越来越多的业务人员,能够用无代码平台做简单的应用,满足自己的个性化需求,"全民开发"会成为现实。但这并不意味着所有人都能做复杂应用,复杂应用还是需要专业的技术人员来做,无代码只是让业务人员能做简单应用,解放技术人员,让技术人员专注于更复杂、更有价值的系统。

总的来说,无代码开发的未来,是光明的。但也是有限的。它不会取代程序员。不会做所有应用。但它会在合适的场景下,发挥越来越大的价值,成为软件开发的重要组成部分。

七、写在最后

花了一个月时间,试用了十几个无代码平台。做了几个demo,最后。我对公司的建议是:可以在小范围内推广无代码开发,让业务人员做一些简单的表单、流程、报表、小工具。提高效率,减少技术部门的负担。但不要期望太高。不要想用它做复杂的核心系统。不要想取代技术人员。复杂的、核心的、大型的应用,还是要用传统开发,由技术人员来做。

同时,要做好管理和规范。比如建立无代码应用的审核机制。避免业务人员乱做应用,产生大量"影子IT"和数据孤岛;建立无代码应用的维护机制。明确责任人,避免应用没人维护。最后变成垃圾;做好数据安全和合规管理,敏感数据不要放在第三方平台上。定期审计,确保安全。

对我个人来说,这次调研。让我对无代码开发有了更深入、更客观的认识,不再像以前那样。要么盲目乐观,觉得它能取代程序员。要么盲目悲观,觉得它是玩具。一无是处。现在我认为,它是一个有用的工具。在合适的场景下,能发挥很大的价值。但它也有很多局限性。不是万能的。不能期望太高。

技术的发展,总是这样。新的技术出来,大家都会盲目乐观。觉得它能改变世界,能取代一切。然后试用之后发现。它有很多局限性。不是万能的。于是失望,唱衰。最后,大家慢慢找到它的合适场景。它在合适的场景下发挥价值,成为技术生态的一部分。无代码开发。现在大概就处在这个阶段,从盲目乐观到失望唱衰。再到慢慢找到合适的位置,发挥价值。

最后,想对打算用无代码开发的朋友说。不要期望太高。也不要完全否定,根据自己的需求和场景。理性选择,合适就用。不合适就不用。不要为了追热点而用,也不要因为有缺点就完全不用。工具是为人服务的。能解决问题的工具,就是好工具。

也想对技术人员说。不要抵触无代码开发,它不会取代我们,它只是把我们从简单、重复、低价值的工作中解放出来,让我们专注于更复杂、更有挑战、更有价值的工作。我们应该拥抱变化,学习新工具,利用新工具提高效率,而不是抵触和拒绝。

技术在发展,时代在变化。我们能做的,就是保持学习。保持开放,不断提升自己。适应变化,在变化中找到自己的位置,发挥自己的价值。

希望这篇文章能给你一些参考,也欢迎大家交流讨论,一起学习进步。