尤雨溪:关于 Vue3 和生活,想和前端们聊聊这些
February 8, 2021 • ☕️ 7 min read
介绍
Evan You 是一名独立软件开发者,也是开源 JavaScript 框架 Vue.js 的创始人。
我们借着这个宝贵的机会和 Evan 聊了聊 Vue3 的发布,了解了他对 no-backend、fullstack、Vue.js 用例以及技术创造者的「工作与生活平衡」问题的看法。
注:这是一家企业软件开发商 Evrone 和尤雨溪的一次访谈。
访谈
Evrone
嗨,Evan,欢迎你!用这个问题开始我们的采访吧。
你的由 patreon 提供资助的全职工作比较特殊。你是怎样平衡你的工作与生活,避免倦怠?
Evan
虽然我是在家工作的独立开发者,但我每天还是努力去遵循一个固定的时间表。
我可爱的孩子们在这方面帮了我很多,我需要在非工作时间去陪伴家人。
另外很重要的是,在我感觉需要的时候,我就会花几周时间去度假。如果我在公司工作的话,这不太可能实现。
Evrone
真棒!Vue3 发布之后你会休息一下吗?或者说,你们已经有了下一个版本的 Vite 计划吗?
Evan
我这边积压了很多工作。
对于 Vite 来说,目前的目标就是让它更稳定 —— 这是个新系统,大家一直想让它顺利运行在它发布之初未曾设想的一些场景里。
所以给它点时间,看看会怎样进化吧。
关于 Vue 3.1 我也有了一些想法,但我需要休息一会,给自己充充电很重要!
Evrone
你在大学的时候主修艺术史专业,后来作为创意技术工程师加入 Google Creative Lab。你在开发 Vue 的时候,有因为数学、算法、数据结构方面的欠缺而遇到问题吗?
Evan
说实话,真的不多 —— 个人认为 Vue 或者其他前端框架,大部分时候都不是数学/算法密集的领域(比如和数据库对比)。
而且我一直不认为我在算法和数据结构上面很强,在那些方面做的好肯定会有帮助,但是对于开发一个流行框架来说,做好如下几个方面更有帮助:
- 懂你的用户需要什么
- 设计合理的 APIs
- 建立开源社区
- 长期维护的承诺
我不认为做一个“软件作者”和“写出无聊但是易懂的代码”有什么冲突。说实话后者是需要一定经验的(只要不是非常低效率的那种)!
不要因为没受过严格的 CS 训练,就觉得你写的软件不合格,不过我也不认为你应该忽视它们。
我个人是以务实的态度去写代码的,先用很蠢的方式实现,这也帮助我明白需要去学什么,才能做的更好。
Evrone
棒棒哒。像 Nuxt.js 和 JAMstack 这些技术,都试着让开发者专注于应用的前端部分,用最小化/JS/BaaS 后端,你怎么看待这些 no-backend
或者说 fullstack
的方法?
Evan
我认为这更像是我认为这更像是产品驱动技术的应用。
开发人员喜欢这样的技术栈,是因为正好适合他们正在构建的产品类型:
相对简单的后端逻辑,更多地关注前端交互。
这并不是银弹,但非常适合某类特定的应用。
Evrone
Vue 经历了很多次重写,如果你能穿越回过去,给开发者一些宝贵的意见的话,会是什么?
Evan
如何更好的分离和解耦独立模块。
Evrone
在过去的几年里,显而易见的是 JavaScript 和 TypeScript 并行发展。
你觉得未来会是怎样的,是 JavaScript 中加入类型系统,还是 TypeScript 取代 JavaScript,或是其他的?
Evan
我认为给 JS 本身添加类型希望渺茫 —— 我个人觉得不太可能,由委员会来设计一个类型系统(从 TC39 的运作方式来看)是……相当不切实际的。
TypeScript 不会替代 JS 因为它的设计初衷就是JS 的超集。
从个人的角度来讲,在可预见的未来中,JS 和 TS(带有类型的超集)并行发展是最实际的前进方式。
Evrone
Vue 的用户基础已经达到 100 万以上的开发者,你认为评估用户采用情况的最好方式是什么?Stack Overflow 上的问题,Github stars 数量或者其他的公共访问指标?
但也有很多公司是在独立网络里办公,他们“只是使用技术”,从来不问任何问题。
我们如何在统计技术流行趋势的时候算上他们呢?
Evan
对于开源软件来说,这本质上是很难的。
用户没有义务去报告使用情况,作为作者,很难有可靠的方法去跟踪使用情况。特别是在应用程序不是面向公众的情况下。
所以我认为 Vue Devtools 拓展的用户数,是目前来说最靠谱的统计使用人数的方式,因为他考虑了所有的用户。
Evrone
在 Vue3 中有很多 tree-shaking
的工作。为什么你认为 tree-shaking
花了这么长时间在普及到现代框架中?主要的困难在哪里?
Evan
tree-shaking
依赖于用特定的结构去设计源码 —— 意味着最好你的代码(和 API 设计)从第一天开始就以支持 tree-shaking
的方式书写。
这其实非常难做到,tree-shaking
友好意味着你需要做一些 API 的破坏性变动,或者大重构。(也带来大风险)
Evrone
Vue3 的 Function-based Component API
提案受到了来自社区的巨大阻力。
Evan
主要的阻力其实来源于用户担心我们会弃用 Vue 2.x 的 API,其实不需要担心这个。
作为作者和开发者,我们在日常工作中通常都会和一些热情的早期用户沟通。
比起普通用户来说,他们自然是对新想法更兴奋的,这会让我们误判向后兼容的重要性,用户不喜欢正在用的东西被拿走。
重点在于,你要明白你的用户想要什么 —— 这其实不是很容易,你很难去得到这些信息,但无论如何,你都要愿意倾听这些。
Evrone
Vue 的用户案例涵盖了小型企业到中型机构和数十亿美元的上市公司。
Louis Vuitton 和 NASA 都在用 Vue。
有没有什么用 Vue 编写复杂的现实世界的前端的示例推荐给用户?
Evan
问题在于大部分“复杂、现实世界”的前端项目都不是开源的。
我推荐去看 Vue Devtools 和 Vue CLI UI 的源码(译者注:划重点 ✨)。
这两个都是用 Vue 写的复杂界面,尽管他们不是典型的面向消费者的 Web Apps。
结论
我们和 Even 聊得很开心,也和他学到了很多生活和编写代码的方式。
在 Evrone,我们经常用 Vue.js 来创造一些独特的、满足客户需求的定制化解决方案。
我们真的很开心能有机会和框架的作者学习,这加强了我们的专业知识,也让我们了解了更多创造新产品的工具。
如果你有让项目从 Vue.js 中受益的想法,欢迎联系我们,很乐意提供帮助。
用户不喜欢正在用的东西被拿走。重点在于,你要明白你的用户想要什么 —— 这其实不是很容易,你很难去得到这些信息,但无论如何,你都要愿意倾听这些。
—— Evan You, Creator of Vue.js
原文地址:https://evrone.com/evan-you-interview
翻译 / 润色:ssh
感谢大家
欢迎关注 ssh,前端潮流趋势、原创面试热点文章应有尽有。
记得关注后加我好友,我会不定期分享前端知识,行业信息。2021 陪你一起度过。