红帽白皮书新鲜出炉!点击获取,让你的云战略更胜一筹! 了解详情
写点什么

跳出前端看前端,才能跟别人平等对话

  • 2020-02-06
  • 本文字数:2935 字

    阅读完需:约 10 分钟

跳出前端看前端,才能跟别人平等对话


对于很多前端同学来说,如何在工作中掌握更多的话语权,甚至主导解决方案,是他们当前很关注的问题。在这方面应该怎么做呢?在 GMTC 全球大前端技术大会(深圳站)2019 现场,InfoQ 记者采访了阿里巴巴高级前端专家,ICBU (阿里巴巴国际事业部)性能架构师易晓峰,请教这个问题。作为无线前端和工程团队的负责人,他认为现在前端越来越复杂,很多问题需要多方协同解决,所以要跳出前端再去看前端。如果只盯着前端自己的领域,很难去跟别人平等对话。前端需要保持一个空杯心态,多向后端、客户端同学学习。


InfoQ:请您介绍一下您在阿里巴巴的经历以及您团队的基本情况。


易晓峰:我是 2015 年加入的阿里巴巴,一直在阿里巴巴的国际事业部,也就是 ICBU,我们是一个面向全球用户的国际化团队。我加入后就进入了刚刚组建的无线前端团队,算是见证了整个阿里巴巴国际站无线化的发展。目前我主要负责无线前端以及工程团队,今年团队主要是在跨端和性能两个方向上。


InfoQ:对于一个面向全球用户的大型电商网站,它在性能优化上要重点考虑哪些因素?


易晓峰:性能优化我觉得通常会存在一个“不可能三角”,什么叫“不可能三角”呢?就是性能、规模、成本这三者你只可取其二,很难三者兼得。对我们来说,能通过哪些方式朝向三者兼得的目标去突破是我们的重点。


所以我们做性能优化基本上会考虑这几个方面:第一,我们的方案对于整体性能能够提升多少;第二,我们的方案是不是能够规模化;第三,我们要考虑这个方案的成本。


对于阿里巴巴这么大一个网站,不可能像一个小网站一样通过整体重构去提升性能。做一个 Case 的性能极致很容易,但是如果我们要在低成本规模化下达到性能极致,这是相当难的,我把它叫性能的工业化生产,如果一个性能方案做不到工业化生产,它可能就不是一个特别好的方案。


还有一个重点就是要考虑到国际化的特殊性,包括地区的差异性、物理距离、用户分散等复杂的问题。这些特殊性会给我们的性能优化带来很多挑战,有些行之有效的方案可能需要调优才能工作得好,有些大家认为完全不会是问题的可能会成为问题。


InfoQ:具体到阿里巴巴,在性能优化上我们是怎么做的?


易晓峰:我们主要围绕两个方向 。第一个方向是减少资源的响应时间;第二个方向是降低执行运算的复杂程度。但跟传统的前端性能优化不太一样的是:我们会从网、云、端整个链路去看性能的优化。


在网络层面,我们会有如 BBR 加速、动态加速、边缘流式渲染等;在云端,我们会做 SSR、API 优化、链接复用等;在端上,会有各种缓存策略、API 加载等性能的优化。此外我们对数据也非常重视,会花很大精力做数据的度量、数据的采集,因为数据不只是可以让我们的优化成果得以呈现,还能够指导我们去做优化。打个比方,全球网络最差地区,跟网络最快地区,可能相差 70 倍,这么高的一个网速的差别,用户硬件设备在体验上的差别也会很大。所以我们会基于数据去做分层,了解整个链路中的每个环节时间的消耗。例如一个用户它可能是从 Facebook 跳过来的,经历了很多次跳转到你这边来,性能可能就会比较差;但如果说用户直接打开网页,性能就会好一些。不同的设备,不同的网络,性能到底阻塞在哪里,我们都要通过数据去发现问题,然后去寻找解决方案。


InfoQ:随着业务的发展,我们性能优化工作的重心发生过哪些变化?


易晓峰:我们性能优化这块可以分成三个阶段。第一阶段叫做蛮荒时代。什么叫蛮荒时代?就是纯靠体感进行优化。比如老板去国外,回来说我们网站太慢了;或者大家自己觉得最近我们这个网站太慢了;或者程序员良心发现,觉得太慢了,我们应该把它修一修。这个时候主要就是纯前端层面的优化,比如说 JS 大小,或者拿着雅虎前端优化的 35 条军规对一对,做一下优化;或者一些什么通用的优化方案,做一做看一看。


第二个阶段叫做工业化时代。我们建立了一个多维度全链路的度量分析体系,以及数据监测体系,同时我们在网、云、端做全方位优化。


第三个阶段很快就会到来,叫做精细化时代。为什么要精细化呢?因为我们现在性能优化已经进入了深水区,这时候就需要去精耕细作,用数据驱动的方式去做差异化的优化,根据不同用户客观环境(网络、用户设备)和主观环境(用户行为及动线)去做差异化优化。


InfoQ:您个人比较关注前端领域哪些技术发展趋势?


易晓峰:首先我比较关注跨端;其次比较关注性能;第三比较关注 D2C(Design to Code)。另外就是边缘计算,虽然到现在这个技术的基建还是非常薄弱,但是我觉得它未来是有无限可能的;除此之外,我们还很关注 Google 的技术,毕竟我们是一个国际化团队,像 Google 推出的 PWA、AMP,以及我们现在和 Google 合作的 TWA,都是我们关注的重点。


InfoQ:您的角色还挺神奇的,又负责前端,同时又是性能架构师,为什么会有一个这样复合的角色呢?此外对于希望从前端转向架构师的同学,您有何建议和忠告?


易晓峰:我觉得性能跟前端本身就比较相关,前端重体验,而性能又是体验的一部分。你服务器的性能好不好用户不一定能感知到,用户感知的都是跟前端相关的东西。其实我们在做性能优化的时候一直在提一个概念:“用户不是要真的快,他是要感知到快”。性能这个事情本身在前端的视角去看会更合适,或者准确来讲,它叫做用户视角,因为我们离用户更近,我们更有责任、也有义务去把这个事情做好。


建议和忠告不敢说,只能说一点浅见吧。现在前端面临的问题越来越复杂,很多问题我们需要结合多方一起解决,我们需要跳出前端看前端,如果只是盯着前端这个领域,很难平等对话及主导解决方案。现在要在前端领域做好,除了前端专业的知识,还需要很多的服务器、客户端、数据库、网络等多方面的累积。所以我们也需要保持空杯心态,多向后端、客户端学习。


InfoQ:2019 年在大前端领域,您觉得有哪几个技术发展是超过预期的?2020 年您对趋势的预判是什么?


易晓峰:第一个是跨端跨容器技术,2019 年我觉得跨端技术太繁荣了,百花齐放,比如 SwiftUI、Flutter,以及各种小程序的解决方案;另外就是 D2C,过去一年我们在这块儿发展还是挺好的。


我再说说 Serverless,2019 年大家都在讲 Serverless。Serverless 是云计算发展到一定阶段之后的一个比较有意思的产物,我觉得它会彻底改变前后端的协作模式。后端未来可能更专注于领域模型的建设,前端可能更专注于产品的建设。过去这个中间呢,其实有很多牵扯。大家都讲前后端分离,但是怎么去分离?大家本质上还是在组成一个东西。现在如果是基于 Serverless 这种方式,就是让前端拥有控制数据的能力,同时你又不用去担心这个服务器的运维问题,我觉得这个对于前端会带来很多变化。还有一个就是现在部署在 CDN 边缘结点上的 Serverless,这个会给前端带来非常多的可能。我们现在正在做的边缘流式渲染,就是利用了 CDN 边缘结点 Serverless 的能力。


当然在我看来无论是跨端技术,还是 Serverless、D2C、边缘计算,我都很看好他们在 2020 年的发展前景。


嘉宾介绍:


易晓峰,阿里巴巴高级前端专家,ICBU (阿里巴巴国际贸易)性能架构师,负责无线前端 &工程团队。2018 年主要负责性能优化,从网、云、端全方位优化三端性能,让海外用户的性能得到了极大幅度的提升,同时还建立起用户视角的国际化性能监测及度量体系。欢迎对国际化事业有兴趣的前端朋友们加入我们:微信:wvv8oo。


2020-02-06 16:102505

评论 1 条评论

发布
用户头像
lol
2020-02-07 16:32
回复
没有更多了
发现更多内容

TiDB升级与案例分享(TiDB v4.0.1 → v5.4.1)

TiDB 社区干货传送门

实践案例 版本升级 集群管理 管理与运维

兆骑科创赛事活动承办,项目路演,人才引进平台

兆骑科创凤阁

数字孪生万物可视 |联接现实世界与数字空间

华为云开发者联盟

云计算 大数据 后端 智慧城市 数字孪生

今天拿SpringAOP和自定义注解的通用性开🔪

知识浅谈

切面编程 7月月更

数据中台建设(四):企业构建数据中台评估

Lansonli

大数据 数据中台 7月月更

突破性能天花板!亚信数据库支撑 10 多亿用户,峰值每秒百万交易

亚信AntDB数据库

AntDB 国产数据库 aisware antdb

你真的了解Redis的持久化机制吗?

C++后台开发

数据库 redis 后端开发 C/C++后台开发 C/C++开发

Google Cloud X Kyligence|如何从业务视角管理数据湖?

Kyligence

数据湖 智能多维数据库

面试?进大厂?还得靠这份Java面试指导手册

王小凡

Java 面试 JVM Java多线程 秋招

文档贡献与写作必读-OpenHarmony开发者文档风格指南

OpenHarmony开发者

Open Harmony

官宣,又一上市公司杀入数据库市场

亚信AntDB数据库

AntDB 国产数据库 aisware antdb

SQL 开始日期、结束日期查询

孙永潮

兆骑科创海外高层次人才引进平台,企业项目对接,赛事活动路演

兆骑科创凤阁

APP为什么用JSON协议与服务端交互:序列化相关知识

程序员啊叶

Java 编程 程序员 架构 java面试

不会多线程还想进BAT?精选19道多线程面试题,有答案边看边学

程序知音

Java 多线程 面试题 后端技术 BAT面试题

新四化时代来袭,亚马逊云科技赋能汽车行业加速创新

Lily

即时通讯-改变社交与工作状态的新型软件

WorkPlus

手摸手实现Canal如何接入MySQL实现数据写操作监听

知识浅谈

MySQ 7月月更

一文读懂Elephant Swap,为何为ePLATO带来如此高的溢价?

西柚子

TiCDC迁移-TiDB到MySQL测试

TiDB 社区干货传送门

管理与运维

StarRocks 2.3 新版本特性介绍

StarRocks

基于Flink CDC打通数据实时入湖

数据社

签约计划第三季

【7.22-7.29】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

从通信延伸到全行业,亚信科技AntDB 7.0蓄势待发

亚信AntDB数据库

AntDB 国产数据库 aisware antdb

容器化 | 在 Rancher 中部署 MySQL 集群

RadonDB

MySQL 开源 容器化 rancher RadonDB

Rust P2P网络应用实战-1 P2P网络核心概念及Ping程序

李明

rust 网络 Libp2p

我和 TiDB 的故事 | TiDB 对我不离不弃,我亦如此

TiDB 社区干货传送门

人物访谈

【堡垒机小知识】硬件堡垒机是什么意思?其与云堡垒机有什么区别?

行云管家

云计算 网络安全 数据安全 堡垒机 云堡垒机

关于数字化转型 你需要知道的八项指导原则

WorkPlus

深圳见!云原生加速应用构建专场:来看云原生 FinOps、SRE、高性能计算场景最佳实践

阿里巴巴云原生

阿里云 云原生 峰会

大模型轻量化实践路径

澜舟孟子开源社区

人工智能 自然语言处理 神经网络 深度学习 预训练模型

跳出前端看前端,才能跟别人平等对话_大前端_张晓楠_InfoQ精选文章