写点什么

“移动时代的前端”——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:262639
用户头像

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

关注

评论

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

领域驱动设计(DDD):领域和子域

xcbeyond

领域驱动设计 DDD 4月日更

签约作者可视化

IT蜗壳-Tango

4月日更

线上服务 CPU 100%?一键定位 so easy!

Java小咖秀

性能 cpu 负载 线上排障 线上问题

「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之docker部署(八)

crudapi

Docker Vue crud crudapi quasar

新特性巨量来袭,MindSpore开源一周年实力“狂欢”

华为云开发者联盟

开源 modelarts mindspore 数据预处理加速 分子模拟库

Dubbo 编解码那些事

vivo互联网技术

dubbo RPC 序列化 编解码

HECO火币生态链智能合约Dapp软件系统APP开发

系统开发

区块链农产品防伪溯源平台,助力赣南脐橙产业发展

13828808769

区块链+ #区块链#

区块链电子合同签署平台,区块链电子合同解决方案

13828808769

区块链+ #区块链#

智慧公安重点人员管控系统搭建,重点人员管控解决方案

13828808769

智慧交通

Python OpenCV 边缘滤波保留(EPF)

梦想橡皮擦

Python OpenCV 4月日更

Spark数据倾斜解决方案实战(三)

小舰

4月日更

nginx.conf核心配置

马里奥

nginx Configuration 配置

【LeetCode】二叉搜索树节点最小距离Java题解

Albert

算法 LeetCode 4月日更

带你全面认识CMMI V2.0(终)——实施落地

IPD产品研发管理

项目管理 软件 CMMI

css中的动画效果

赫鲁小夫

4月日更

边缘计算应用的价值

云计算

架構設計訓練營作業 2

海罗沃德

架构实战营

微服务网关的一点思考

程序员架构进阶

架构 自我提升 api 网关 28天写作 4月日更

Linux crontab 命令

一个大红包

Linux linux命令 4月日更

CSS 学习笔记(一) 选择器

U2647

CSS CSS小技巧 4月日更

MemVerge CEO表示基于大内存的基础架构将取代性能层级存储

Steven Xu

内存 存储 基础框架 傲腾

解读金融高频交易不出错的金手指:分布式事务管理

华为云开发者联盟

微服务 事务 华为云 数据一致性 分布式事务管理

Zabbix 产品周期

耳东@Erdong

zabbix 4月日更 lifecycle

转正还是离职?这是一个问题么?

escray

面试 面经 4月日更

基于拉链式和线性探测式散列表实现Map

Silently9527

Java hashmap 线性探测 拉链式散列表 散列表

书单|互联网企业面试案头书之产品经理篇

博文视点Broadview

可视化运行Python的神器Jupyter Notebook

程序那些事

Python Jupyter Notebook 程序那些事

有了这个数据强一致“利器”,DBA们轻松修复数据对加班“say no”

华为云开发者联盟

存算分离 华为云数据库 GaussDB(for Cassandra) 强一致 开源Cassandra

nginx性能优化--配置解析

箭上有毒

nginx 性能测试 4月日更

聊聊LiteOS事件模块的结构体、初始化及常用操作

华为云开发者联盟

LiteOS 事件 事件结构体 事件掩码

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