深圳幻海软件技术有限公司 欢迎您!

React:搞了半天,我才是低代码的最佳形态

2023-02-28

大家好,我卡颂。你有没有发现,每过几年,「低代码」的概念就会被翻出来热炒一番。这也难怪,软件行业最大的成本就是人力成本(程序员的工资),「低代码」号称能够:用一个外包替代几个程序员。用产品、设计、财务人员替代程序员。用xxxx替代程序员。一个只有程序员受伤,还能降本增效的世界,资本怎能不爱。概念翻来

大家好,我卡颂。

你有没有发现,每过几年,「低代码」的概念就会被翻出来热炒一番。

这也难怪,软件行业最大的成本就是人力成本(程序员的工资),「低代码」号称能够:

  • 用一个外包替代几个程序员。
  • 用产品、设计、财务人员替代程序员。
  • 用xxxx替代程序员。

一个只有程序员受伤,还能降本增效的世界,资本怎能不爱。

概念翻来覆去炒了这么多年,为啥市面上还没出现颠覆程序员工作方式的低代码平台呢?

今天,我们来聊聊这个话题。

低代码,我们聊的是一回事么?

程序员和资本眼中的「低代码」是一回事儿么?

对于程序员来说,「低代码」的概念更接近于DSL​。比如,JSX​是对DOM的抽象。

如果将「直接书写操作DOM的方法」看作代码,那么「使用JSX这套DSL编写的React代码」就是低代码。

因为前者是开发者面向宿主环境(浏览器)直接命令式的书写代码。

后者是开发者声明式地操作状态,React这个「低代码平台」再将「状态变化」转化为「操作DOM的方法」。

而对于资本来说,「低代码」的概念更接近于「珍妮纺纱机」,有了他,就能革了纺纱工(程序员)的命。

为什么前者这种开发模式能够在业界大规模普及,而后者不能呢?

这就要提到他们的本质区别 —— 是工具还是平台?

工具 vs 平台

工具与平台的目的都是为了「降本增效」,他们的区别是什么?

一个应用从开发到上线平稳运营,涉及到很多工种的不同工作。

工具降本增效的方式是 —— 帮助「从事这些工作的工种降本增效」,比如:

  • 前端、后端框架提升业务开发效率。
  • Git用于多人协作时的代码管理。
  • Github Action用于完善CI、CD流程。

而平台降本增效的方式是 —— 将工作流程、工作内容抽象成模块,这样即使是外行,只要组装不同的模块,就能拼凑出一个应用。

也就是说,前者降本增效是通过「提高专业人士的效率」,而后者是通过「以可视化的方式,降低工作门槛,让非专业人士替代专业人士」。

但这里有个问题 —— 虽然平台屏蔽了软件开发的复杂度,但软件开发会遇到的问题,他也没法避免。比如:

如何应对定制化需求?

遇到「依靠模块组装无法满足的定制化需求」,低代码平台怎么办呢?

业界常见的解决方案是 —— 为低代码平台保留「编写代码的能力」。

毕竟,低代码平台的产物也是代码,只要产物代码结构清晰,程序员还是能在此基础上开发定制化需求的。

但问题是,程序员的介入,这就将低代码平台推崇的如下映射条件:

从「非专业人员组装的模块」到「应用」

变成了:

从「非专业人员组装的模块」到「程序员的补丁代码」再到「应用」

那这个应用的后续迭代,是不是也得程序员介入?这成本不又回来了么。

如何协作开发

现在我们假设,有个巨牛逼的低代码平台,非常好用,极大提升了开发效率。

老板一看,员工闲下来了,这不比股市跌了还让人难受。

于是,马上拍脑袋安排新的需求开发。开发人员不够用了,怎么办?招人。

这些人如何在低代码平台协作开发呢?难道再把Git的概念引入平台?

如何测试

是个应用就会有bug。低代码平台再完善,能够解决模块自身的单测,但E2E测试谁来做?财务么?

思路要打开

上述林林总总的问题,随着项目复杂度上升、维护时间变长后都会出现。

那该如何解决呢?在这里插个眼,有缘人知道答案请告诉我。

如果解决不了,那我们换个思路,如何才能不让项目复杂度上升?不让项目维护时间变长?

那就限制低代码平台的应用场景,比如:

  • 开发营销活动页的低代码平台。
  • 开发企业官网的低代码平台。

让我们思路再打开下,平台开发出来是为了卖钱的,只要用户在意识到上述问题前把钱收了,不就行了?

搞互联网的不好忽悠,那我们可以助力传统企业数字化转型嘛。20分钟就给你搭出个官网,这转型速度,未来可期啊。

请,转账付费。

理想的低代码平台

平台型低代码很难跑通,但是工具型低代码却有很好的前景。以React举例。

在使用React​前,前端开发者直接操作DOM​。有了React后,「业务的前端逻辑」被封装到名为「组件」的模块中。

接下来,React​提出了Server Components,组件可以在服务端运行。

这一步将「业务的服务端逻辑」也封装到「组件」中。

同时,Hooks在前端可以与「视图状态」挂钩,在后端可以与「微服务」挂钩。

这种基于「组件」、「Hooks」的「低代码工具」,你喜欢么?