Web开发

首页 » 常识 » 预防 » 全码通用搭建现代Web研发体系
TUhjnbcbe - 2021/12/25 20:26:00
皮肤白癜风专科医院 https://baike.baidu.com/item/%E5%8C%97%E4%BA%AC%E4%B8%AD%E7%A7%91%E7%99%BD%E7%99%9C%E9%A3%8E%E5%8C%BB%E9%99%A2/9728824?fr=aladdin
前言

终于有时间把稀土开发者大会上讲的「Web开发引擎」和「低码」话题的分享,改成文字版发出来。

现场演讲中后半部分内容是脱稿讲的,我重写成了更全的内容。

「越来越庞大的应用开发需求」和「现代Web开发范式的红利」这两个部分的幻灯片,虽然在其他分享里用过,但在这个话题里,用途是不同的,文字内容是不同角度的,建议不要略过。

分享实录

大家好,我是来自字节跳动WebInfra的杨扬。在字节跳动,我们部门负责打造和发展「Web技术中台」和「前端研发体系」。

上午的主题演讲中,字节跳动正式发布了Modern.js开源项目,这个项目的目的是推动现代Web开发范式的普及,发展完整的现代Web工程体系,突破应用开发效率的瓶颈。现在这个专场虽然是关于低代码的,但我要分享的内容,也是完全依靠这套现代Web工程体系,才能够实现。

上午有讲到Modern.js是字节内部整套现代Web研发体系的三大组成部分之一,我这次侧重讲的,是其中的另一个组成部分:「低代码开发管线」。

议程

低代码是一个很宽泛的话题,如果背景不同、需求不同,解决方案也会差别很大。所以在这次分享的第一个部分里,我们先明确一下这套方案背后最根本的需求是什么,然后在第二部分,我们盘点下各种低码、零码解决方案在这个背景下的瓶颈问题,最后第三部分来看下「全码」通用搭建是怎样的解决方案。先来看看根本需求:

一、突破研发提效天花板1.1「越来越庞大的应用开发需求」=?

最根本的需求就是应用开发在数量、范围、效率上的需求,大家都知道从PC互联网到移动互联网,软件应用被用于更多日常生活场景和更多企业场景,导致应用数量大幅增加,这种趋势到现在不但没减弱,反而还在加强,比如幻灯片上IDC的预测,这么庞大的应用开发需求,是很难靠传统的软件开发方式和人才储备来满足的。

最常说的解决途径就是靠低代码、零代码工具,就像幻灯片里右侧这张图,当前市场上存在非常多的这种产品,国内大厂在内部建设的这类项目也非常多。

但这些项目普遍更适合垂直、局部的场景,只支持相对有限的能力。大幅增加的应用开发需求带来更高的多样性、更广的场景和更高的质量要求,其中很多都仍然需要专业开发者的参与,而当前这些低码零码项目又普遍的难以跟专业研发协同工作,所以才会有我们今天的话题——如何跟研发体系结合,突破传统低码技术的瓶颈。

刚才说的这些场景下的应用开发需求,在初始状态下,会完全等同于对专业开发者的需求。我们不应该跳跃思维的直接钻到低码解决方案的牛角尖里,而是应该先站回起点,看看在专业开发方面能提效到什么程度,能满足多少需求,有什么瓶颈,因为低码方案的竞争对手不是只有其他低码方案,而是首先要跟成熟完善的专业研发体系「竞争」。

既然这些场景下的应用开发需求,最初完全等同于对专业开发者的需求,那么显而易见的提效方法,就是让尽可能多的开发者能独立、完整的开发这些应用,而前端技术栈的开发者,正是最大的开发者群体和技术社区。

所以在用户、产品、市场这一侧,一直有趋势和压力,需要更多「前端开发者」成为「应用开发者」或「产品开发者」,鼓励和倒逼着技术领域,不断产生更有利于这种需求的技术形态和基础设施。

不是技术领域,而是商业领域,需要更多「前端开发者」成为「应用开发者」或「产品开发者」,背后的原因除了刚才说的,还有一个,就是随着移动互联网又重走了PC互联网时代门户网站、浏览器的老路,除了少数作为领域入口的超级App,像实体、内容、服务这样海量、高频的需求,都更倾向用Web技术来实现,需要前端技术背景的开发者。

研发产品最初是从最接近机器的底层开始发展,从虚拟化,到容器编排,到基于容器技术的各种平台化、服务化的研发工具形态(就像图上绿色部分),这个阶段是后端技术主导的,但整个趋势是越来越向上层发展,越来越接近市场和商业价值最终所在的地方——也就是面向用户的产品,因此必然会发展到前端技术主导的抽象层,让应用开发和产品开发能更专注于用户需求,而越来越不需要关心服务器端的复杂性和专业技术细节。

所以市场需求会趋向于推动应用开发方式往「专注于前端」的方向的发展,「专注于前端」就等同于「专注于用户」,而「专注于用户」是多数企业、产品的根本利益所在。

在这种客观趋势的推动下,基于Web技术的应用开发中,服务器端的占比和门槛一直在不断下降。

国内大厂的中台建设,提供了大量不跟特定客户端捆绑、专注于数据需求和底层业务逻辑的API,让产品开发更聚焦在上层的客户端业务逻辑。

海外流行的HeadlessCMS本质上也是一种中台,也起到同样的作用。

还有BaaS和基于云函数的后端云Serverless,进一步降低服务器端的门槛,让前端开发者能更独立的、端到端的完成产品开发。

但要进一步降低门槛,提高效率,以上模式的一个缺陷就暴露出来,就是他们都把应用依赖的API,放在应用项目之外维护,跟前端研发是割裂的,这样带来的问题和效率瓶颈很多。还有一个缺陷就是不解决API之外的服务器端需求,比如SSR等「Web」需求。

要克服这些缺陷,必然需要新的模式,比如明天上午专场会介绍的Modern.js中,前端工程方案覆盖了完整全栈开发的各个环节,但同时又通过一体化、尽量无服务器化的方式,实现「客户端为中心」的现代Web开发范式。

这些开发范式、开发工具方面的发展,都创造了条件,让更多「前端开发者」成为「应用开发者」或「产品开发者」,工作中也更

1
查看完整版本: 全码通用搭建现代Web研发体系