2022,low-code彻底流行,甚至流行到没有相关经验都不好意思出去面试,堪称lowcode的“元年”.在整个互联网裁员的背景下,你是否相信它是降本增效的利器,似乎已经无关紧要。因为行业趋势总是那么强大,不以个人意志为转移。从下图某个技术峰会的分享主题可以看出。正好笔者最近在开发B端低代码平台。所以,我想和大家分享一下我这段时间的一些感悟。不过,让我先声明一下。本文只谈观点和见解,不谈具体的技术细节。低代码生成互联网产品的背景趋于标准化。据我观察,有相当一部分程序员一提到低代码就摇头说不,说他们已经被这些低代码平台“伤害”了,因为一旦产品需求涉及到平台,他们就不会支持它。功能,这至少可能导致加班和返工,或者担心绩效,甚至丢掉工作。这是一个新事物发展初期的必然阶段:不适应现有环境。如果你站在更高的层面,想象一下:当有一天,你的老板宣布产品经理以后提出的要求不能超过低代码平台支持的能力,你会作何感想?不要轻易说不可能,因为资本的本质就是追求利润。如果这些非标准需求的额外开发成本不能创造预期的收入,那么对于那些试错成本容忍度低的团队来说,这些需求是完全无关紧要的。没有存在的必要(回想一下,你的产品经理说的那些奇奇怪怪的需求上线没几天就改回去了,你真的觉得有价值吗)。稍微了解软件外包行业的人都知道,很多外包订单都是先一个一个模板项目复制,稍加修改后交付。因为他们接触的大多数客户要求都是标准化的。比如客户需要开发一个H5商城,产品、订单、物流、产品运营后台完全可以满足需求,甚至不关心UI风格是否和竞品一模一样。不过不排除定制化开发的价格会比全套模板高很多,但这也至少说明这些非标需求是锦上添花,并非刚需。全部。其实大厂也有这种趋势。毕竟各个工厂的业务范围越来越交叉,产品层面也在互相抄袭。真正创新的产品越来越少。C端产品,尤其是大厂商充分竞争或优势的业务领域,由于追求UI设计、交互、产品体验的差异化,标准化难度相对较大。比如每年的双11促销都要跟上潮流,每年的玩法都不一样,很难标准化。但大部分B端产品对定制化的要求并不高。随着产品形态的固化,用户形成了一套习惯性的交互习惯。随着应用开发的技术栈趋于成熟,走前端的主力军:js框架。vue和react虽然还处在大版本的迭代中,但是它们对整个开发方式的影响还不足以与2015年和16年的jQuery相提并论,与现代框架的革命性相提并论。更多的是一些类的优化比如更灵活的逻辑拆分和服务端渲染。针对前端开发中的痛点,构建工具、前端框架、框架上的UI组件库、跨端等各个技术领域的边界也划分得很清楚,开发越来越多并且更加成熟。这就是前端低代码出现的技术背景。前端低代码实现笔者对低代码的理解是:通过可配置的低成本交互方式(主流是拖拽)加上少量的胶水代码,来满足一类应用的需求。这里作者使用了比较成熟的B端low-code旁白。C端也很相似,但是因为样式、动画等自定义需求比B端复杂很多,所以目前相对成熟的前端低代码应用都在B端。低代码实现的原理其实很简单。就是先预设丰富的原子组件,通过拖拽的方式在画板上安排好需要的组件的位置。之后,设置一些组件属性。最后生成供开发者二次开发的jsonSchema或“源代码”,用于驱动客户端的内容渲染。虽然原理简单明了,但在实现上也存在一些困难。例如如下:1.宏设计首先,设计一个可以面向不同业务场景的低代码项目是一个很大的挑战。比如一个公司级的低代码项目,旨在赋能各个业务线。这样会有一个问题:每个业务对低代码平台能力的要求都不一样。除了大量可复用的功能外,肯定会有大量的定制需求。甚至各个业务线的产品形态也很不一致,有的面向C端,有的面向B端。如果是中心化的思路,一套低代码的平台就可以满足各个业务线的需求。首先,劳动力成本难以平均分摊。其次,随着接入平台的业务线越来越多,平台必然会变得臃肿难维护。如果每个业务线独立开发一套符合自身业务特点的低代码,难度会降低很多,但也意味着低代码素材在公司层面的复用会变得困难。说说目前业界流行的解决方案:推动低代码协议在公司层面乃至行业的统一。这使得跨企业甚至跨行业重复使用材料成为可能。阿里前端委员会为此下了不少功夫,大家有空可以多多了解。分层您的低代码架构。首先要有一个低代码的基础设施,然后用它来为特定的业务场景“生成”低代码平台。那么如何设计这个“生成低代码平台的低代码平台”就成了重中之重。这有点类似于低代码“中台”和“前台”的关系。2.实现细节事件安排下图是目前最常见的设计。您可以配置单击按钮时触发哪种类型的事件,以及触发事件时调用哪些函数。一般会内置一些常用功能,比如打开模态框等,如果内置不满足要求,需要插入一些自定义代码。状态联动相对容易解决。阿里的formily、x-render、jsonschema-form等成熟方案都可以解决问题。它们之间的差异更多在联动性能上,但在超长形态场景下差距更为明显。下面是阿里lowcode-engine的交互设计。该平台的构建相对简单。我接触到的内置比较丰富的平台是iofod,一个全场景的低代码平台。这是他们的开发者的广告。笔者也结交了他们的开发者,惊讶于一个人完成了这么大的工作量,体验比很多公司团队级产品还要用心。异步数据绑定传统前端开发中很多时间其实是花在了与后端接口的对接上。这些任务在当前的前端低代码开发模式中并不少见。如下图,你需要一个表单回填功能。后台给的明细数据和前台表单要求的格式有很大的不同,只好自己写一个转换函数来解决。这也是低代码平台最受诟病的一点,即:还是要写代码。但低代码的价值从来不是不写一行代码的追求,而是让开发者写尽可能少的代码。有人说我的copy代码其实来的比较快,而且我很熟悉这个功能的开发,代码不会有什么问题。但是,你是不是经常在提交cr之后悄悄commit几个fix?最可怕的是,测试还认为这个功能很普通,没必要仔细测试,给线路带来隐患。试着回顾一下过去项目的b??ug列表,是否有很多是因为不小心分心或疏忽造成的。这是low-code目前可以解决的问题。通过构建一些通用功能,可以降低通用功能的开发和测试成本。大多数功能的交付质量并不取决于某个开发者在某个时期的开发经验、精力和水平。这是笔者的看法,现阶段低代码技术最大的价值所在。
