阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

“移动时代的前端”——QCon 北京 2014 专题出品人玉伯专访

  • 2014-01-16
  • 本文字数:3697 字

    阅读完需:约 12 分钟

随着移动时代的到来,前端面临的挑战越来越大。从产品角度来看,前端朝着多终端的方向发展,需要考虑 PC、Pad、Phone、TV 等各种用户终端的交互实现。未来的产品形态,需要高性能跨终端的面向消费者的应用,也需要传统 PC 端面向企业的富应用。向上是移动开发,向下是企业应用,这两个方向都非常重要,对前端的挑战则各有不同。

从技术角度来看,前端不再局限于浏览器端的 Web 技术。随着 Node.js 技术的兴起,前端开发开始渗透到服务器端,将服务器端的 View、Controller 等层接管过来,成为全栈(Full-stack) 开发。在全栈的模式下,前后端的分工协作更加合理高效。全栈之路究竟如何走,目前无论国内国外,都处于起步阶段,充满诱惑与陷阱。

本届QCon 北京2014 ,InfoQ 特别邀请到支付宝前端技术部负责人王保平(玉伯)来打造“移动时代的前端”专题,关注跨终端、全栈开发以及前端工程化。

玉伯是淘宝前端类库 KISSY 的创始人,也是前端模块加载器 Sea.js 的创始人。他在前端基础技术、网站性能优化、企业应用开发等方面非常活跃,并且还是一名非常热心的前端布道者。在 Velocity、QCon、D2、NodeParty 等会议上积极参与。玉伯在微信上开通 WTP 公众帐号(微信号 wtp-notes),畅谈技术、产品与自由梦。

以下是采访内容。

InfoQ:大家都知道您是您作为支付宝前端开发团队负责人,淘宝前端类库 KISSY、前端模块化开发框架 SeaJS、前端基础类库 Arale 的创始人,不过还是请您重新介绍一下自己,及这三个项目现在的情况吧。

玉伯:我的情况比较简单,03 年毕业,在北京漂了 5 年,08 年到杭州加入淘宝,12 年转岗到支付宝,现在负责支付宝共享平台的前端技术团队。

在淘宝期间,业务需求需要做一个富文本编辑器,于是有了 KISSY Editor,后来做着做着就变成了一个前端基础类库 KISSY,editor 是其中一个组件。11 年开始,KISSY 的主要开发工作已移交给同事承玉。现在已经有一个专门的虚拟团队维护,负责人是拔赤。

2010 年期间,有关注 Node.js 和 CommonJS 社区,了解到当时的风云变幻。强烈觉得模块化开发理念不仅需要规范化、更需要扎扎实实的实现,当时有 FlyScript、BravorJS、RequireJS 等种种实现。个人不是很喜欢 RequireJS 的一些理念和实现,喜欢的 FlyScript 则自我阉割了,因此萌生了自己写一个的想法,这就是 Sea.js。Sea.js 已经发展到 2.x 版本,在国内使用比较广泛,阿里、腾讯、中航信等公司都有采用。Sea.js 的核心理念是保持简单,只做该做的。目前 Sea.js 3.0 的规划已经有了雏形,会进一步简单,包括构建。

2012 年到支付宝后,支付宝已经有了一套前端基础类库 Arale 1.1,因此我并不是 Arale 的创始人。Arale 1.1 的思路与 KISSY、YUI 等类库差不多,都是从底层组件做起,很辛苦很累,但效果并不太好,在可维护性、易用性等方面,自己做的 dom、event 等组件,经常不如业界已经成熟的 jQuery 等类库好用。为了解决这些痛点,当时和同事商量后,就有了 Arale 2 的想法。Arale 2 的核心是开放。开放的第一层是拿来主义,业界已经有的成熟方案,经过我们考察后,直接引入进来用。拿来主义直接让我们站在了巨人的肩膀上,并能以此做为基础,迅速构建适合支付宝的一套 UI 组件库。从狭义上讲,Arale 是为支付宝量身定做的,并不适合直接拿去给其他公司用。从广义上讲,Arale 是构建前端基础类库的一种开放式方案,这种方案可以被其他公司借鉴。目前已有不少团队基于 Arale 方案构建出了适合自己公司业务的特定类库。Arale 目前的规划有两个方向:1)进一步拥抱社区,废弃 CMD,拥抱 CommonJS,Arale 组件的模块将直接与一个 Node 模块无异。2)基础组件的 Mobile First 化,为移动基础类库的构建提供体系化方案和最佳实践。

对前端开发来说,前端基础类库很重要,但从整个前端领域来看,类库依旧是比较小的一块。还有很多领域非常值得投入,下面有时间再说说。

InfoQ:阿里内部团队众多,能否讲讲支付宝前端团队的开发流程和特别之处?

玉伯:从前端开发来看,阿里内部分三种类型:淘系、支付宝系、B2B 系。B2B 系没亲身体验过,略过不说。淘系和支系的区别比较明显,简单说下。

淘系的核心业务是「导购」,业务的定位使得淘系大量前端业务以前台展现为主。这类业务,快是第一用户体验。快不仅是页面速度快,也包括研发交付速度要快。也会有功能交互很复杂的业务,但相对来说不是很多。

支系的核心业务是「支付」,有段时间也有「导支」业务,但很快成为非主流。「支付」是功能型的,与用户资金相关,「稳定」、「安全」是第一用户体验。当然也求快,但在稳定、安全面前,快经常要让道。支系还有两个重点是金融与数据,与支付一样偏功能性。

业务类型的不同,使得淘系、支系的技术体系、研发交付有比较大的差异性。淘宝求快,支付宝求稳。目前支付宝也在探索更适合互联网的快速轻量级研发模式,淘宝在稳定、安全上的要求也越来越高。像是两个极端,在互相借鉴互相靠拢,差异性应该会长期存在,但会逐步减少。

InfoQ:目前您最关注的重点是什么?

玉伯:目前最关注的是团队管理。从带几个人,到突然带几十人,压力很大。除了自己的个人生活,最在乎的就是这帮兄弟姐妹的未来。目前团队缺口还很大,近期大量招聘中,职位不限于前端开发,也希望有 Node、Java、iOS、Android、交互、视觉等经验的人员加入。

你瞧,又广告了。最近晚上做梦都在关注招聘,有个同事说我近期三句不离招聘,欢迎投递简历。

InfoQ:您感觉在过去一年中,前端领域是否发生了令人值得注意的变化?

玉伯:变化太快了,好多变化。百度的 berg 总结过一篇 2013 前端技术盘点,说得很全面。对支付宝来说,最大的变化有:

  • 全端化。前端不再是折腾各种浏览器了,而是需要面对 PC、Pad、Phone 甚至 TV 等各种端。支付宝的做法很干脆实在,直接让一批前端开发转岗到无线部门做 iOS 开发。前端部门自身也需要逐步具备跨终端开发的技能。这是移动互联网带给前端最大的冲击,却也是最好的礼物。
  • 全栈化。Node 的兴起和成熟,让前端在解决研发效率等问题上有了新思路。阿里的整个技术体系是基于 Java 的,前后端的职责分工一直存在灰色地带,特别是在支付宝,厚重的开发环境已经对前端研发效率带来严重影响。在这种情况下,如果能基于 Node 实现前后端运行与研发过程中的清晰分离,将会带来研发效率上的大提升。全栈不是为了技术的全面,而是从职责分工上能让更合适的人干更合适的事。
  • 工程化。前端开发越来越复杂,除了运行时的类库框架,还有非常非常重要的一块是研发交付体系。这一块各个大公司的前端都在探索,各个公司都有大量实践,但感觉都还存在很多优化甚至突破的空间。支付宝的研发交付体系好像是阿里最复杂的,前端一方面「享受」这种复杂性带来的稳定性保障,同时又非常「痛恨」如此让人抓狂的各种平台、流程。前端的工程化开发是一个体系化的问题,相信 2014 年,支付宝前端在这一块会有飞跃式突破。

InfoQ:您是此次“移动时代的前端”专题联合出品人,能否谈谈你对此次专题的内容策划?

玉伯:内容策划上,就是上面说的全端化、全栈化、工程化。筛选的话题,会来自大公司,也会来自创业公司。全端化是移动互联网对企业的需求。全栈化、工程化都是对研发效率的关注,这一块的进展,能让互联网公司特别是大公司的传统研发模式发生变革,让分工更合理,研发效率更高。

InfoQ:您对“全端开发”这个新概念怎么看?

玉伯:上面已经提到这些概念了。全端我的理解是跨终端,从浏览器兼容,走向各种终端的兼容。你想谈的应该不是这个,而是 FSD(Full-Stack Developer)。

Full-stack 有些地方翻译成全端,我更喜欢翻译成全栈。知乎上有过讨论,感觉大家对全栈的理解有很多差异点。我的理解与大家的有些不一样。

  • 全栈不是什么都懂,而是鼓励大家从单一( | 型)人才变成一专多能(T 型)人才,进而变成多专多能( π 型)人才。
  • 对于前端的全栈之路,在支付宝是鼓励大家通过 Node 掌握服务端上的 UI Layer 层开发,是让前后端的分工更合理,并非是让前端去研究后端的专业领域。表面上看是分久必合、合久必分,实际上是分工更合理,让前后端都能朝着更专业的深度发展。
  • 全栈开发应该根据不同场景去定义。支付宝的全栈,跟 Facebook 的,目前就不一样。中间没有谁好谁坏,都是从业务实际需求出发,以及团队目前的人员情况出发,自然而然地一种选择。

InfoQ:在前端开发以外,您是否还有关注的技术领域?为什么?

玉伯:技术领域这几年都放在前端了,对动漫制作、数据挖掘有浓厚兴趣,但尚未投入大量时间。技术领域之外,最关注团队管理,越来越发现很多事情靠一个人无法达成,个人英雄主义时代已经很遥远。在当下,要达成一些心中想做的事,要倚靠团队的力量。自己的定位依旧是技术专家,但同时希望自己能具备 leadship,这样才能达成自己心中的梦想。

此专题详细信息,请见专题页面。关于此次 QCon 北京其他专题的详细信息,请移步至大会官网

需要特别注明的是,每年 QCon 大会门票都会在开幕前售罄,及早预定可提前确保席位,并享受更低折扣。现在报名参加将可享受 8 折优惠。团体购票(5 人及以上)将享有更多优惠。详请咨询 qcon【at】cn.infoq.com,或直接致电 010-64738142。报名请点击报名页面

2014-01-16 05:262556
用户头像

发布了 91 篇内容, 共 35.8 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

Prometheus 启动时被禁止的功能特性

耳东@Erdong

Prometheus Feature 7月月更

elasticsearch实战三部曲之二:文档操作

程序员欣宸

Java Elastic Search 7月月更

C# 之 $ – 字符串内插

陈言必行

7月月更

元宇宙改变人类工作模式的四种方式

CECBC

备战金九银十!2022面试必刷大厂架构面试真题汇总+阿里七面面经+架构师简历模板分享

Java永远的神

Java 程序员 面试 程序人生 简历模板

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

鳄鱼视界

Discourse 自定义头部链接(Custom Header Links)

HoneyMoose

区块链,得这样练

CECBC

什么是数字货币、数字金融 和区块链?

CECBC

EA中的业务对象和业务实体你分得清吗?

涛哥 数字产品和业务架构

企业架构 TOGAF Archimate

横向对比5种常用的注册中心,无论是用于面试还是技术选型,都非常有帮助

程序员小毕

Java 程序员 面试 微服务 后端

干货来袭!2022阿里巴巴全新出品Spring全家桶全栈笔记(终极版)奉上

程序员小毕

Java spring 程序员 面试 微服务

Elephant Swap:借助ePLATO提供加密市场的套利空间

EOSdreamer111

区块链的诞生是为了解决——“去中心化的协同”这个问题

CECBC

基于MySQL数据库,Redis缓存,MQ消息中间件,ES搜索引擎的高可用方案解析

Java永远的神

Java 数据库 redis ES 消息中间件

你必须知道的一些JVM技术点

Java学术趴

7月月更

关于JVM的内存模型

Java学术趴

7月月更

Microsoft SQL服务器被黑客入侵 带宽被窃取

郑州埃文科技

microsoft 数据安全 代理IP

面试官:Redis中的布隆过滤器与布谷鸟过滤器,你了解多少?

Java全栈架构师

Java redis 程序员 面试 后端

[ Kitex 源码解读 ] 熔断机制是如何实现的

baiyutang

Go 微服务 微服务架构 kitex CloudWeGo

数据中台建设(五):打破企业数据孤岛和提取数据价值

Lansonli

数据中台 7月月更

鸿湖万联扬帆富设备开发板正式合入OpenHarmony主干

科技汇

分布式限流 redission RRateLimiter 的使用及原理

王小凡

Java redis 分布式 SpringCloud 框架

历时两月,终拿字节跳动offer,算法面试题分享「带答案」

程序知音

Java 字节跳动 算法 程序员面试 八股文

手慢无!阿里亿级流量高并发系统设计核心原理全彩笔记现实开源

Java全栈架构师

Java 面试 程序人生 分布式锁 架构师

新型LaaS协议Elephant Swap给ePLATO提供可持续溢价空间

股市老人

北京突然宣布,元宇宙重大消息

CECBC

《SpringBoot 手册》:国际化组件 MessageSource

看山

springboot MessageSource

新一代开源免费的终端工具,太酷了

程序知音

重写并自定义依赖的原生的Bean方法

了不起的程序猿

java程序员 Java 开发 SpringCould

十月阿里社招Java面试题:数据库+分布式+高并发+JVM+Spring

程序知音

Java 阿里巴巴 程序员面试 后端技术 八股文

“移动时代的前端”——QCon北京2014专题出品人玉伯专访_JavaScript_彭超_InfoQ精选文章