[关闭]
@hanting003 2016-10-22T20:53:56.000000Z 字数 2718 阅读 872

尤雨溪QCon QA

Q:你好,一开始我也有了解过,在测试里面,Vue2.0想听一下您对这个有什么样的观点。

尤雨溪: 因为Vue本身也是经过了很长时间的阶段性变化,最早在做Vue没有考虑跟别人怎么不一样,因为Vue最最早的版本,等于研究内部的实现,做了这么一个实验,但是后来后来的研发过程中,发现了很多跟他们有冲突的地方,保留了它的影子,在进行慢慢小的改动,在0.1级到1.0这个过程中是这样的一个过程,在2.0这个过程确实是收到了很多影响,主要是在架构所带来的可能性方面,确实不可否认的,Weex开了一个先河,好的理念如果能够让Vue变得更好,所以我觉得就是说把Vue开发体验跟底层优秀思想结合的话,对Vue的开发者和现有的生态都是一个比较好的尝试。

Q:我想请问一下,你在设计Vue文件的时候,你有没有考虑把它分离,或者你怎么做这个决定?

尤雨溪: 可以分离,就用这个引用一个外部的文件,就是你可以自己决定把哪一块挪到单独的一个文件里面,用SRC这个特性把它引入进来。
提问:你好,我想请问一下,它就是说可以适应安卓这样两端。
尤雨溪: 刚才不是说Weex可以做这样的事情。
提问:怎么去做到的?
尤雨溪: 它自己做了一个一个层的实现,最早的版本借用了Vue1.0的代码,我们现在接下来一步要做的就是让整个是直接用Vue2.0本身的代码,这样就使得之后它的H5这个渲染其实就不需要了,它如果以后要需要构建到Weex应用,就不需要额外一层H5的渲染,所有界面的结构数,这些节点,这些操作都是抽象的,最终我们要做的这些节点操作抽象成一个一个命令,发消息,把它发到渲染层去。
提问:后面做的三端不一样。
尤雨溪: 这个长远来讲是希望这样的,不同平台有一些特性,但是我们希望尽可能做到语法覆盖。

Q:我看Vue里面单元测试,单元测试几乎是全覆盖,写得很充分,很健壮,但是我们在实际的项目过程中,发现有很多前面的同事发现投入产出比就不高,这里面有什么体会?

尤雨溪: 因为Vue作为一个库的吧,几人同时在用,Vue的稳定性肯定是极端重要的,在这种情况下大投入做单元测试,是非常有必要的事情,不能马虎的,在实际应用开发的时候,这个就是一个资源取舍的问题,因为你团队的人手资源是有限的,而且你肯定实际项目是有时间上的要求,如果你花太多时间做单元测试,起到反效果,我觉得这个最终就是一个取舍,就是说合理对核心的。如果说单元测试成本太高,接受不了,就尽可能对核心的功能做覆盖。我觉得应用的单元测试没有盲目的追求100%的测试率,更多就是说对关键的热的用力去做完善的覆盖。

Q:我想问一个关于Vue1内存的问题,如果说我整个应用是比较庞大的情况下,使用的东西比较多的情况下,整个对内存是不是一个很大的影响?还有就是我想顺便问一下性能的问题,我看到了官方一些例子上面基本都是层级的组建,而组建与组建的非常复杂的,实际上是无状态那种形势,那个实际上对整个渲染的性能是有提升的,怎么样的场景下用这个东西。
尤雨溪: 我已经忘了你的第一个问题。
提问:性能内存问题。
尤雨溪: 就是说Vue所用的依赖追踪实现确实就是说,但实际在结果中发现这个一块内存的开销,相对于真正的内存开销是有点小的,就是说虽然有额外的开销,但是这个开销在实际使用中就变得九牛一毛了,当然在1.0里面跟2.0有一个区别,在2.0里面一个组建对应一个模式,所以可能同样的应用在2.0里面,数量就会少很多,2.0内存占用比1.0有质的提升。第二个问题是什么?
提问:组建欠套。
尤雨溪: 就比如说你同样最终生成的结构,如果你是用1000个组建跟100个组建,每一个组建它都有自己的内存占用,一些生态周期的这些东西要去处理,肯定是有一定开销的,但是我的看法就是说找到合理的组建切分力度,过细的切分也并不是一个,我个人认为也不宜进行过度系列的切分,找到一个合适的点,同时还是要以你实际应用的为准,如果你发现这个组建数量真正成为瓶颈的时候,你再做优化也是来得及的。
2.0的函数,就是说你用函数的时候并不代表无状态,你的组建本身还是有状态,但是你也可以让它无状态,在Vue2.0无状态的函数组建就是一个函数,你虽然可以把它在模板里面用,这个对性能确实有相当大的提升,这种组建其实很适合用你所担忧的多组建签套,它本身如果不需要状态,你把它做成组建,肯定是对性能有所帮助。
尤雨溪: 我们时间所限,最后一个问题。

Q:非常感谢你开发的Vue1这个东西,我有两个问题,第一个问题因为刚刚也发布了2.0的版本,从你的角度Vue1.0跟2.0有什么样的区别,这是一个,另外就是我比较关心的一个问题,Vue1对这样一些企业级的应用有什么样的考虑?因为我之前尝试做一个企业级的应用,但是我最后放弃了,因为去整合Vue1那些东西会耗费一个时间很多精力,所以我想看一看你是怎么处理这个?

尤雨溪: 我觉得一个主要的思想上区别就是之前也讲到了,Vue从设计的角度上就是一个框架,不限于尤其在清亮级的Vue,只用Vue的核心去覆盖更多的用力,简单来说一些会引入到很多的复杂度,从量级,Vue2有ALT的优化,但是本质上来讲,它还是一个非常庞大的框架,当你全部用到的时候,几百K是跑不了,可能在移动用力的场景下,Vue会有一个明显的量级优势,还有在开发体验上面,Vue2有点就是说,一个比较不是那么的体验,换句话其实是官方语言,这个东西就是一个选择偏好性的问题,就是说你如果选择强类型的话,这个就是一个很好的选择,但是在静态类型,希望能有编译器帮你找到类型的错误,但是从开发上手体验来讲,并不作为默认的语言选择,从整个设计角度来讲,我个人的认为就是Vue2还是说有一定程度的过度设计,在设计中引入了很多的设计模式,在企业应用的场景下,其实它就是冲着应用场景下去,一切都是要看你的实际场景决定,但是Vue对于企业级场景使用的考量上,更多是希望通过CUI来做处理,我们接下来一步就是更多,所谓的统一性,我们更多去提供各个部件如何一起运作,整个更加像一个框架运作的这些教程、内容,我们也希望就是说在将来对这个方面进行补充,同时可能推出一个包含整个一套全部包含在里面的模板。

身为架构师的你是否还需要继续不断学习呢?如果你还想要有更广阔的技术视野,那就来ArchSummit吧,100+实践案例,1500+技术专家,Facebook、Twitter、LinkedIn、阿里、腾讯、百度、新浪、滴滴等知名企业来分享他们的一线实战经验。目前8折报名中,点击阅读原文链接,了解详情。www.archsummit.com/bj2016/index.html?utm_source=infoqwechath5

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注