介绍 #
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 陪你一起度过。