由于本人水平有限,文中所表达的观点不一定准确甚至有错误。如果您有不同的意见,欢迎在评论区留言。

什么是 nocode lowcode procode

  • nocode 无代码:不需要写代码就能做出一个应用。
  • lowcode 低代码:仅需写少量代码就可以做出一个应用。
  • procode 专业代码:应用所有的代码都需要开发人员编写。

由于 nocode 和 lowcode 没有本质区别,所以下文统一使用低代码来代指它们。

低代码平台在近几年特别火,在各大技术社区经常能看到低代码相关的文章。国内也有不少的低代码平台,例如墨刀、云凤蝶、宜搭等等。

在现在这个年代,软件就是生产力的代名词。以前在公司请个假还得拿张请假条,层层审批,找各个领导签字。现在只需要在软件上发个申请就可以了。因此,低代码平台为什么这么火也不难理解了,因为可以解放生产力。与之相对的是另一个问题:供需不平衡,需求太大,供应不足(软件开发人员相对不足)。低代码平台就是为了解决这类问题而出现的。

例如运营、财务、销售等部门需要特定的系统,但又没有 IT 部门或者 IT 部门人员不足。这个时候就可以选择使用低代码平台了,各部门人员通过简单的培训(熟悉文档)就可以上手开发,通过拖拉拽的方式生成一个应用。

优点与缺点

优点很明显,通过简单的培训就可以让很多不懂技术的人员上手开发。将一些原本软件开发人员才能做的事交给其他人来做,这样可以降低成本。因为软件人员的薪资成本一般比其他岗位的薪资高,使用低代码平台就是将相对高的人工成本转移到成本相对低的人身上(可以少招一些程序员)。

但缺点也很明显,具体有以下几点:

  1. 低代码平台不是通用的解决方案,它只能针对某一业务场景。目前的低代码平台有面向工作流、面向原型、面向表单等一些常用的业务场景,或者说只能面向简单的业务场景。没有通用的解决方案。
  2. 无法做到定制化,低代码平台由于面向的人员比较多,开发功能时需要考虑到不同的用户,无法专门为某一企业做定制化开发。
  3. 降低成本,就是将开发人员的成本转移到其他人身上,降低的是薪资成本。但从开发效率来看,反而是降低了。因为用拖拉拽的方式开发应用效率是很低的,远远比不上直接敲代码。我在之前的公司开发过一个类似于墨刀的低代码平台,在测试时花了半小时靠拖拉拽的方式开发了一个小应用。为了做一个对比,我用敲代码的方式,不到 10 分钟就搞定了(当然,不同的业务场景可能时间不太一样,但不会有太大的差别)。不过这个缺点不适用于没有开发人员的企业。

总的来说,低代码平台还是利大于弊的。因为目前还有很多企业是没有 IT 部门的,低代码平台可以很好的解决他们的问题。

这里有一个实际的例子,在我工作的上一家公司,我们接了同一个客户很多的项目。这些项目基本上都是同一类型的项目,功能上可能会有稍微的差别,但没有本质区别。这个客户必须为他的每一个项目付费,即使这些项目可能只有几个页面不一样。为了改善这种情况,我们针对用户的需求开发了一个低代码产品,后面用户要做什么项目只需要自己开发就可以了。

对于客户来说,他再也不用为每一个项目付费了,因为可以自己开发。这样就降低了费用成本,自己开发虽然时间长一点,但相对于降低的成本 ,客户是能够接受的。

未来

最近看了不少关于低代码平台市场的研究报告,例如头豹研究院发布的《2020中国低代码开发平台行业概览》是这样说的:

在中国云服务市场高速扩张的背景之下,过去5年低代码开发服务初步落地。2016至2019年间,中国低代码开发平台行业融资额由100万元攀升至1.2亿元。

国内国外很多的大公司也在推出或收购低代码平台,争取在低代码平台这个赛道上分一杯羹。例如国外的有微软、亚马逊、西门子等等,国内的有腾讯、字节、阿里等等。

不说远的,我认为未来两三年内低代码平台的发展还是很有潜力的,市场规模每年都在涨。

低代码平台的一些功能点

从目前的低代码平台来看,基本上都是靠拖拉拽来生成应用。可以说低代码平台是重前端,轻后端的产品,对于前端的技术要求更高。我之前对低代码平台做过一番调研,写了一个类似于墨刀的 DEMO。并且写了三篇文档对这个 DEMO 涉及的功能点进行原理分析:

  1. 编辑器
  2. 自定义组件
  3. 拖拽
  4. 删除组件、调整图层层级
  5. 放大缩小
  6. 撤消、重做
  7. 组件属性设置
  8. 吸附
  9. 预览、保存代码
  10. 绑定事件
  11. 绑定动画
  12. 导入 PSD
  13. 手机模式
  14. 拖拽旋转
  15. 复制粘贴剪切
  16. 数据交互
  17. 发布
  18. 多个组件的组合和拆分
  19. 文本组件
  20. 矩形组件
  21. 锁定组件
  22. 快捷键
  23. 网格线
  24. 编辑器快照的另一种实现方式

如果你想了解更多,可以看一下我的项目 visual-drag-demo

在线预览:

文档:

我觉得低代码平台比较重要的一个点就是物料库。物料库越丰富越好,这是毋容置疑。另外添加新物料的方式,建议做成类似于插件的形式,这样可以方便扩展。最好就是插件能够以 npm 包的形式发布,添加插件就是添加 npm 包。这样无论是添加或删除物料都不用对低代码平台的源码进行修改。

总结

一句话,比较看好低代码平台的前景。如果你是一个前端,并且对于自己的职业生涯没有清晰的规划,可以考虑一下低代码这个方向。