加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

2019 JSConf.Asia尤雨溪:在框架设计中寻求平衡

发布时间:2019-08-05 13:41:47 所属栏目:建站 来源:qiangdada
导读:特别说明 这是一个由simviso团队对 JSConf.Asia 中关于前端框架设计取舍相关话题进行翻译的文档,内容并非直译,其中有一些是笔者自身的思考。而分享者正是 Vue.js 的作者 @尤雨溪,Vue 仓库地址:github.com/vuejs/vue 让我们一起来了解下在当前框架三足
副标题[/!--empirenews.page--]

「2019 JSConf.Asia - 尤雨溪」在框架设计中寻求平衡,深度好文

特别说明

这是一个由 simviso 团队对 JSConf.Asia 中关于 前端框架设计取舍 相关话题进行翻译的文档,内容并非直译,其中有一些是笔者自身的思考。而分享者正是 Vue.js 的作者 @尤雨溪,Vue 仓库地址:github.com/vuejs/vue

让我们一起来了解下在当前框架三足鼎立的局势下,如何直接透过框架本身了解到更多有关框架设计中的的权衡,以及 Vue 是如何进行取舍的。

视频地址:

  • 【国外前沿技术分享-前端-中文字幕】尤雨溪:在框架设计中寻求平衡 上(https://www.bilibili.com/video/av61099876)
  • 【国外前沿技术分享-前端-中文字幕】尤雨溪:在框架设计中寻求平衡 下(https://www.bilibili.com/video/av62104134)

视频翻译版权归 simviso 所有

一、前言

「2019 JSConf.Asia - 尤雨溪」在框架设计中寻求平衡,深度好文

大家好,很高兴来到这里。你今天过得怎么样? OK

我很肯定你已经看过很多讲座了,也知道今天这次课程,希望这次不会太无聊,但是还是要给那些不认识我的人简单地介绍一下我自己。

我的名字叫 Evan You,我的推特账号是 Youyuxi,我的中文名字就是 Youyuxi。从2016年开始我就是一个独立的开源开发者。

也就是说我现在已经独立开源三年了,主要从事 Vue.js。

「2019 JSConf.Asia - 尤雨溪」在框架设计中寻求平衡,深度好文

你们中有多少人在真正的使用它?

很好

它从 2013 年开始作为我的一个业余项目 ,我从 2016 年开始全职维护它。在多年的框架设计工作中,我学到了很多东西,这也给了我很多关于内部设计的观点。人们在构建正确的框架时做出的一些权衡决策。

你们中有多少人还记得 2013年 的那段时间,那时可能每天都会有一个新的 JavaScript 框架出现,NBC 有一个类似 40,50个框架的列表,这些框架都在构建相同的东西,Vue 差不多是从它们的时代开始的,当时我只是在研究一些现有的解决方案,并试图找出如果我构建这样的东西,我会怎么做。

但很明显,我对应该做什么的想法随着时间的推移而发生了很大变化。

但今天我将讨论其中的一些发现,特别是前端框架设计。

二、框架取舍

我敢打赌,很多人都在使用框架,即使你不使用 Vue,也可能使用 React、Angular 或其他框架。

很难想象,在没有这样工具的情况下就去构建一个复杂的前端应用程序。

当然,你仍然可以使用普通的 JavaScript 去做这些事,只是那样将花费我们更多的时间。

我猜当大多数人在面对这些框架的时候,会疲于对这些框架进行比较。

每当媒体给我推送关于框架比较的文章时,比如《2019最好用的7个新框架》,我通常会说:“咦~”

「2019 JSConf.Asia - 尤雨溪」在框架设计中寻求平衡,深度好文

这不是因为说:“啊,我写了 Vue,我想让人用它,我不想听到有人说它的坏话”

而是因为大多数时候,这些文章只关注 github 的 star 数,npm下载量,stackoverflow 问题统计等这些可以随时随地通过 Google 查找到的内容。

「2019 JSConf.Asia - 尤雨溪」在框架设计中寻求平衡,深度好文

但是,这些统计数据在某种程度上还是有用的,比如对于市场营销来说。

但是如果你尝试去做一个技术决策,并且尝试去和市面上已经成熟的技术去竞争的话,那么这些数字在某个阈值上的相关性会越来越小。

比如,我们在生产环境使用的东西,你知道的大部分可能都过了 10000 个 star 了。

「2019 JSConf.Asia - 尤雨溪」在框架设计中寻求平衡,深度好文

但这个门槛真的那么重要吗?一个库到底有几千 star?

这并不重要,相反你应该更关心的是一些内部技术决策,比如导致这些框架的延迟发布的真实原因是什么。

所以在我们深入研究之前,我们先退一步思考下所有的这些框架的共同目标,我们都在努力实现的同一目标。所有框架的作者们都在朝着“让你们尽量能更高效地构建 Web 应用程序”这一目标而努力,那么为什么我们还要有这些不同比较的竞争的想法呢,这到底是好还是坏呢?

所以为什么我们有这么多不同的框架,而且每个框架都有很多的追随者呢?

就像 React 和 Angular 各自都有超过 50 万的用户。

我认为不能单纯的以一个好与坏来评价一个框架。

「2019 JSConf.Asia - 尤雨溪」在框架设计中寻求平衡,深度好文

人们往往会问一些问题,比如哪个框架更好,请别再问这个了。

因为我们很难简单地去评定一个框架要优于另一个框架。

我们都知道软件设计在于取舍,事实上我们现在的前端框架设计有太多的地方需要进行取舍,尤其是在 Web 中。

因为 Web 是一个充满多样化元素的平台。

我们可以在 Web 上构建各种有趣的事情,无论是最简单的页面还是到你所每天使用的复杂程序。

因此,为了适应所有这些情况,框架制定者必须在多方面进行取舍。

「2019 JSConf.Asia - 尤雨溪」在框架设计中寻求平衡,深度好文

今天我会将其中的一些拿出来聊聊,希望能对你在这块的看法有所帮助。但是由于时间原因,我肯定不能非常深入的去讲解每种情况。

所以,我只会专注其中的一部分。

第一:职责范围。从本质说是指这个框架可以为你做多少事情。

第二:渲染机制。当你在使用一个框架的时候,你会如何表达你的视图层,框架如何处理代码?它是如何将实际渲染东西展示到页面上的?

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读