乱炖访谈:Vue.js 作者 尤小右
发布在前端乱炖官方2014年3月19日view:33853
在文章任何区域双击击即可给文章添加【评注】!浮到评注点上可以查看详情。

1. 能简单的介绍下你自己吗?

大家好,我叫尤雨溪,目前在 Google Creative Lab 就职。其实我原本是做设计的,但是后来为了把自己设计的东西做出来,不知不觉就进了前端开发这个坑…

2. 在google您主要负责哪些事情??

首先我想解释一下,Google Creative Lab 和 Google X 不一样,后者是搞纯高科技的,而 Creative Lab 更多的是进行创意推广和用户体验、界面设计上的各种实验。Lab 内部的一些产品想法通常都比较超前或是天马行空,而我作为 Creative Technologist 则需要快速地实现可体验的产品原型。除此之外还会参与一些类似 Chrome Experiments 的创意类项目。

3. 能介绍下您构建的vue.js项目吗?例如其性质和场景,特别之处,目前的状态。

写 Vue.js 的缘由是因为我在快速原型开发的过程中试用了多个框架都没法完美满足需求。我做的原型大部分专注在界面的交互细节,而且都不是传统的应用,Angular 和 Ember 这样的全功能框架太过繁重而且灵活性不够,Backbone 在界面层根本没有数据绑定,而 Knockout 和 Ractive 在多个组件的嵌套和组合上都做得不是很理想。我想要一个轻量的库来来提供最简洁的 MVVM 数据绑定,并且提供可复用、可嵌套的组件机制。之所以要做 MVVM 数据绑定,是因为它可以使得界面变得由数据和状态驱动,视图的状态逻辑可以和具体的 DOM 操作良好的解耦。

在 API 设计上,一开始是想把 Backbone 简洁友好的 API 和 Angular 扩展性良好的指令机制进行一个结合,后来开始注重向 Web Components 靠拢。至于具体的实现,我一开始就打定主意只支持 ES5 兼容的浏览器,因为我发现可以靠 ES5 的 Object.defineProperty 来将对象的属性转化成 getter 和 setter,从而实现在直接操作原生 JS 对象的时候触发事件,达到观察数据变化和收集依赖的目的。这样实现的结果就是性能比 Angular 的 dirty checking 高了一个数量级,同时对开发者保留了最简洁的数据操作语法。Vue.js 还对数据的变化进行异步的批量处理,保证一个事件循环内同一个数据的多次变化只触发一次视图更新,最大化的减少 DOM 操作。在 TodoMVC benchmark 中,Vue.js 的速度胜过了所有其他框架。由于其本身只专注于 UI 层,所以使用场景很灵活,从单页应用到嵌在静态页面里的表单或是小组件都可以胜任,另外整个库 gzip 后只有 13kb 且没有依赖,非常适合在对文件大小和性能敏感的移动项目中使用。

Vue.js 马上将要发布 v0.10,内部实现进行了大幅的改进,性能更加强劲,并且吸取 GitHub 上用户的意见加入了一些好用的新功能。在这个版本发布后,Vue.js 将会进入相对稳定的状态,我会把时间更多地用来发布一些更详细的教程和范例。

4. 平常您的生活是如何的?例如下班后和周末一般做些什么?会经常去度假吗?

日常生活没什么特别的,偶尔要加加班,在家有空主要就是做做自己的个人项目,有时候陪老婆看电视剧,周末出去吃个饭,去 flushing K个歌什么的… 总的来说还是比较宅。

5. 最近网上流传一篇Google办公室的文章,里面把google的工作环境描述的如空中花园一般,事实是这样吗?在google的工作状态是怎样的?

文章我没看过,不知道说得有多神… 不过 Google 的工作环境确实比较舒服,各种地方都做得比较贴心。工作状态一般比较放松,不需要定点到办公室,也不规定几点下班,开会也可以远程 Google Hangout… 基本上只要团队交代的事情做好了就可以。

6. Google内部的前端开发是如何展开的?有什么优秀理念值得其他同行学习?

Google 内部的前端开发其实分化还挺厉害的,并没有一个统一的标准,更多的是视团队而定。相当一部分应用还是用 java 写然后用 GWT 编译成 JS 的… 还有一大部分还是在用 Closure Library,整体风格比较繁琐,但这主要是出于一些核心产品对极端的工程稳定性的要求。由于我不在这样的工程团队里,所以在这方面并没有太多可以分享的。现在也有一部分应用开始用

7. 能给国内的前端开发者一些建议?

对于学习上的建议,一个是学好英文,这样可以主动地吸收国外前端社区的最新动态,接触最前沿的理念,遇到问题搜索起来也更容易找到解决方案,甚至可以直接去看规范。另一个就是善用 GitHub,多看别人的代码,这和多看书才能写出好文章是一个道理。对感兴趣的技术,自己动手摸索着造个简陋的轮子,就会明白难点在哪里,也会更容易理解别人的源码为什么要这样写。最后谢谢乱炖君,希望乱炖越办越好 :)

评论
发表评论
暂无评论
WRITTEN BY
前端乱炖
专注前端技术和关爱前端人员情感问题20年 http://www.html-js.com
TA的新浪微博
PUBLISHED IN
前端乱炖官方

官方发言,活动通知,总结等。

友情链接 大搜车前端团队博客
我的收藏