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

从可编程到跨终端——QCon 北京 2013“跨终端的 Web”专题出品人鄢学鵾专访

  • 2013-01-27
  • 本文字数:3831 字

    阅读完需:约 13 分钟

鄢学鵾,常用 ID:三七、秦歌,天猫前端团队负责人。曾在网易做过 UI Designer,领导过雅虎中国的前端团队和口碑 UED,负责过阿里云 OS 运营。 对 Web 标准、前端开发模式、性能优化和自动化有较深入的研究, 目前专注于 PC 到 Mobile 领域的设计、 技术和业务间的融合。业余时间参入过几本前端书翻译,担任 D2 前端技术论坛的顾问,并一直主持 QConBeijing 和 QConHangzhou 的前端专题。 其信仰互联网精神(自由、开放、共享、创新),努力玩转设计与技术,尽情享受趣味和创意。他的 blog 是 http://dancewithnet.com ,Twitter 是 @kavenyan

作为 QCon 北京 2013 大会跨终端的Web 出品人,鄢学鵾接受了InfoQ 的采访,以下是采访内容。

InfoQ:能否先简单谈谈您在 Web 编程这个领域的从业经验,和您对此领域的理解?

鄢学鵾:我的经验最早从大学开始,领导一个学生团队负责学生网站,虽然这并不是一个商业站点,但运营、设计、前后端开发的分工协作已经有了雏形。 2005 年毕业后,在网易北京做 UI Designer,交互、设计和前端开发都做,那时 Web 标准和 Ajax 刚刚盛行,我的重点开始集中在 Web 前端开发领域,理解到对 Web 编程而言,标准是最低要求,Ajax 只是一种前后端的数据交换方式,重点是如何基于它们构建解决业务问题的程序。

2007 年加入了中国雅虎,这段时间让我充分地深入了 Web 前端开发的实践和理念,包括 JavaScript 库和框架设计与开发、Web App 的模块和组装、静态文件的部署和 CDN 的发布、API 服务层和前后端分离与协作。那时最重要的工作就是设计并开发了“NCP- 站长天下”的前端架构,它一个开放的 Web App 平台,其核心是 Web App 模块的定义、组装和发布机制。这个项目后来失败了,留下的火种演化为淘宝旺铺的前身。

再后来到了口碑网,从负责前端开始一直到整个 UED,这期间最重要的事情就是完整地实践了企业级前端架构,包括 Web 架构和 JavaScript 框架引用与升级机制、静态文件规则和发布机制、静态配置文件的引用和升级机制、以及与其相对的自动化工具。

之后,在阿里云 OS 负责内容运营,从 BD、运营、PD、UED、一直负责到相关业务的后端开发,这段时间除了对手机操作系统和生态有了深刻认识外,也对 Web OS 和 Mobile Web 有了深入的探索和实践。

去年底开始负责天猫前端,现在电子商务正处于 B2C 的快速壮大和 C2B 的兴起,而移动正在成为互联网的主流,所以我现在的目标是构建一个跨终端的前端架构使其能够低成本高效率地让所有用户享受到无处不在的天猫体验。 在我看来,Web 编程就是基于 Web 把 UI 设计和数据结合起来构建人机交互环境并发布到互联网上的迭代过程。

InfoQ:Web 编程与前端开发的关系是怎样的?

鄢学鵾:Web 是互联网的一部分,但由于互联网绝大部分内容都是通过 Web 呈现的,所以很多人把万维网(world wide web)当成了互联网。同样,前端开发指的互联网产品的 UI 和数据结合构建人机交互环境的开发过程,从 MVC 的角度来说,前端开发包括 View 层和与之相关的 Control 层。所以,前端开发是基于互联网来说的,Web 编程是基于 Web 来说的,只是 Web 占有量太大,很多场合会把两者等同起来。 准确来讲,前端开发不应该局限于 Web 编程,各种客户端也有前端开发,只是前端部分不是由专门的前端开发工程师来做。Web 编程不应该局限于 HTML、CSS、JavaScript,服务端构建 View 层的 PHP、模板语言等都属于 Web 编程。但在实际交流和分享过程中,iOS 客户端的前端开发会归于 iOS 的开发,PHP、Java 等语言的前端开发会淹没于后端开发的探讨中,这也是前端开发总是探讨 HTML、CSS、JavaScript 的原因,但随着 Nodejs 的发展、各种前端工具的兴起和前后端分离的深入,前端开发也越来越会从解决互联网产品的实际问题出发,不再单单是 HTML、CSS 和 JavaScript 等技术。

InfoQ: HTML5 和 Javascript 语言在此领域扮演者什么样的角色?

鄢学鵾:HTML 和 HTTP 的出现才标识 Web 的诞生和繁荣,而 JavaScript 和 Ajax 使 Web 在 2005 年迎来第二春。HTML、CSS 和 JavaScript 是 Web 编程的基石,也是 Web 能够如此盛行的原因。由于 Web 的盛行才导致 HTML、CSS、JavaScript 在前端编程中占据统治地位。Web 不是互联网的全部,同样 HTML、CSS、JavaScript 也不是前端开发的全部,而是至关重要的部分,只有和整个互联网生态的其他技术有效地融合才会更强大。

InfoQ:这个专题的名称从往届 QCon 中“可编程的 Web”变成了“跨平台的 Web”,为什么会有这样的变化?

鄢学鵾:上一届 QConHangzhou 的前端主题是“可编程的 Web”,当时 Mobile Client Application 大行其道让某些人担心"Web is Dead?",而实际情况是,新一轮的浏览器大战如火如荼,HTML5 继续在理想和现实中挣扎前行,JavaScript 从 Web 走到了 Server(NodeJS),Mobile Client Application 越来越多地 mushup Web Application,Web Sites 开始提供各种各样能解决实际问题的 API,Web 越来越强大的可编程性使其正发展成为互联网操作系统。 而今天,Mobile Client App 依旧如日中天,但没有人再担心"Web is Dead",反而因为多种操作系统、无数种屏幕尺寸和使用场景成为移动互联网的新挑战。大热门业务和大公司可以不考虑成本为不同的终端不同的设备构建各种客户端产品,但 Web 的通用性、低成本和快速发布显示了巨大优势,这就是为什么大量类似 TIME 杂志的网站都已经使用 Web 的响应式设计来解决跨终端的问题( http://mediaqueri.es ),这也是为什么本期 QCon 主题要讨论“跨终端的 Web”的初衷。

InfoQ:现在各个移动平台对 WebApp 均提供了不留余力的支持。有为 Web 而生的 WebOS,FirefoxOS,近日 Ubuntu 也发布了最新的 OS 系统,Android,WindowsPhone 和 iOS 更在尽全力再提高 HTML5 的支持度与 Javascript 的运行效率。为什么会有如此繁荣的市场?

鄢学鵾:去年 QConhangzhou 2012 时,我曾说过“Web 越来越强大的可编程性使其正发展成为互联网操作系统”,这个真正有点 WebOS 的味道,因为这是基于互联网管理资源的一种方式,现在已经显示巨大的能力和生命力。但今天的终端操作系统不仅要管理软件,更要管理硬件,这都不是 JavaScript 擅长的,这就是为什么所有基于 HTML5 + JavaScript 的 WebOS 都不会成功,因为不可能短时间内解决操作硬件的性能问题和构建大型绚丽的游戏。硬件就应该交给底层语言去解决,所以短时间内 WebOS 肯定不可能成功,但基于操作系统使用 Web App 来管理互联网资源,这正是 Web 所擅长的且能够跨平台的,这就是为什么今天会受到如此重视的原因,虽然目前还不够繁荣,或许在明年这时就另一个世界了。

InfoQ:但也有人认为,在 web 端,html5 是 100% 晴天,在移动端则不然。Facebook 在这一年里彻底放弃了移动平台上的 HTML5 应用。您怎么看这一点?

鄢学鵾:今天移动端的用户规模已经超过了桌面端,但经济规模还差的很远,所以整个移动互联网还属于投资阶段,不计成本地投入导致了客户端如此火热,另外 Mobile Web 也没有完全准备好,比如移动端的网络稳定性、离线处理方案和性能,但随着基础设施的发展和对投入产出比的考量,跨终端的 Web 才是绝大部分互联网场景下的最合适选择。另外,Facebook 也没有彻底放弃了移动平台上的 HTML5 应用,只是认为现阶段使用 Native App 是一个更快的实现较好体验的解决方案,两者会齐头并进。

InfoQ:无论在桌面端还是移动端,NativeApp 与 WebApp 永远是大家争论的焦点。您如何看待两者的选择和取舍?

鄢学鵾:Native App 和 Web App 只是解决人机交互环境问题的两种方案,不是竞争对手,而是互补关系,选择哪个需要看使用场景、体验和成本。现在属于移动互联网的投资期和狂热起,所以大家基本上更关注使用场景和体验,而不考虑成本。 我个人认为 Web App 适用于解决对网络依赖性强且需要跨终端的互联网产品,比如交易和新闻,而 Native App 适用于对性能、效果和流畅度要求特别高的软件产品,比如游戏和 IM。整体上,我倾向于用 Web App 作为通用的跨终端解决方案,然后用 Native App 来解决大热门应用,同时两者还可以相互 mashup 来相互借力。

InfoQ:这个领域在 2012 年有哪些值得记录的进展?在未来又有怎样的挑战与展望?

鄢学鵾:2012 年最需要记录的 3 件事情就是“Web is Dead?”的讨论、“Facebook 承认在移动平台上使用 HTML5 策略有误”和 Win8 原生支持 Web App。 前 2 件事情不是对 Mobile Web 的打击,而是使 Web 开发的同学们真正开始思考 Mobile Web 所遇到的问题和 Web 在移动互联网时代的价值,而第 3 件正预示着 PC 和 Pad 的融合,也引发了这次“跨终端 Web” 的讨论。

今天 Mobile Web 最大的挑战在于网络、性能和效果,而跨终端 Web 要改变的不仅仅是设计开发思路,更需要运营和产品以及服务端都需要从细粒度模块化的角度来思考互联网产品的每个部分。

InfoQ:做为 QCon 中这个专题的出品人,您希望通过此专题为大家带来哪些实践经验,从而解决哪些问题?

鄢学鵾:

  • 从跨浏览器到跨终端,Web 应用造就了怎样精彩的商业案例?
  • HTML + CSS + JavaScript + Web API 解决问题的能力到底有多强大?
  • 跨终端的 Web 开发会给前端开发带来怎样的挑战和变革?

InfoQ:多谢三七。最后一个问题,如果不干 IT,您最想从事什么工作?

鄢学鵾:设计和开发有意思的亲子玩具,让未来的下一代在老爸亲手做的玩具陪伴下长大。

关于此次 QCon 北京的详细信息,请移步至大会官网。现在购票正处在八折折扣期,团体报名,更有其他优惠。报名请至大会报名链接。详情咨询 qcon@cn.infoq.com

2013-01-27 23:573846
用户头像

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

关注

评论

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

设计模式第七讲-外观模式、适配器模式、模板方法模式详解

C++后台开发

设计模式 后端开发 Linux服务器开发 适配器模式 C++开发

【立哥】【每日一个小知识】写遗嘱把部分财产赠给第三者,遗嘱有效力吗?

Lee Chen

知识

模块6 拆分电商系统为微服务

KING

拜占庭将军问题和 Raft 共识算法讲解

京东科技开发者

算法 分布式系统 拜占庭将军问题 raft共识算法 日志同步

Slurm集群调度策略详解(2)-回填调度

慕冰

Slurm 回填调度

@所有人,OceanBase DevCon • 2023来啦!

OceanBase 数据库

数据库 oceanbase

高复用性自动化脚本设计实践

京东科技开发者

自动化 测试 框架 脚本重构 高复用

火山引擎DataTester:A/B测试,让企业摆脱广告投放“乱烧钱”

字节跳动数据平台

大数据 AB testing实战 企业号 2 月 PK 榜

Wallys|QCN9074/QCN6024/ 5G 802.11ax|Does QCN9074-5G module support W56?

Cindy-wallys

QCN9074 QCN6024

# drainer binlog 清理机制 源码详解

TiDB 社区干货传送门

集群管理 管理与运维

云数据库TiDB使用过程注意项及改进建议

TiDB 社区干货传送门

6.x 实践

可靠、安全、稳定,开源高质量项目 | 亚马逊的开源文化

亚马逊云科技 (Amazon Web Services)

3dmax的常用功能和使用方法

Finovy Cloud

3D渲染 3DMAX

高并发下保证接口幂等的8个锦囊

采菊东篱下

Java 编程

信通院发布“2023可信AI案例 知识计算应用优秀案例”, 百度知识中台三大案例入选

Geek_2d6073

ChatGPT搜索风暴

OneFlow

人工智能 深度学习

GGX发布全新路线图,揭示具备 Layer0 特性且可编程的跨链基建生态

股市老人

2022年最新数据库调查报告:当前企业使用率第一的中国数据库是什么?

墨天轮

数据库 TiDB oceanbase 国产数据库 达梦数据

iOS tableView添加group分组

刿刀

ios UITableView

故障案例:MySQL唯一索引有重复值,官方却说This is not a bug

GreatSQL

OceanBase 4.0解读:兼顾高效与透明,我们对DDL的设计与思考

OceanBase 数据库

数据库 oceanbase

理论+实践,揭秘昇腾CANN算子开发

华为云开发者联盟

人工智能 AI 华为云 企业号 2 月 PK 榜 华为云开发者联盟

谈JVM参数GC线程数ParallelGCThreads合理性设置

京东科技开发者

线程 JVM cpu GC线程 ParallelGCThreads

机器学习洞察 | 一文带你“讲透” JAX

亚马逊云科技 (Amazon Web Services)

文盘Rust -- 本地库引发的依赖冲突

TiDB 社区干货传送门

开发语言

自定义HarmonyOS启动页组件

白晓明

HarmonyOS 自定义组件 OpenHarmony

LeetCode题解:938. 二叉搜索树的范围和,DFS,详细注释

Lee Chen

算法 LeetCode

HIFIVE音加加×筷子科技,内容创作如何再加“筷”一点

HIFIVE音加加

音乐 版权 视频创作 AI剪辑

【2.10-2.17】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

TiDB在转转公司的发展历程

TiDB 社区干货传送门

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

基于 Flink 的小米数据集成实践

Apache Flink

大数据 flink 实时计算

从可编程到跨终端——QCon北京2013“跨终端的Web”专题出品人鄢学鵾专访_JavaScript_彭超_InfoQ精选文章