尤雨溪:关于 Vue3 和生活,想和前端们聊聊这些

简介: Evan You 是一名独立软件开发者,也是开源 JavaScript 框架 Vue.js 的创始人。我们借着这个宝贵的机会和 Evan 聊了聊 Vue3 的发布,了解了他对 no-backend、fullstack、Vue.js 案例以及技术创造者的「工作与生活平衡」问题的看法。注:这是一家企业软件开发商 Evrone 和尤雨溪的一次访谈。

介绍


Evan You 是一名独立软件开发者,也是开源 JavaScript 框架 Vue.js 的创始人。

我们借着这个宝贵的机会和 Evan 聊了聊 Vue3 的发布,了解了他对 no-backend、fullstack、Vue.js 案例以及技术创造者的「工作与生活平衡」问题的看法。

注:这是一家企业软件开发商 Evrone 和尤雨溪的一次访谈。


访谈


嗨,Evan,欢迎你!用这个问题开始我们的采访吧。

你的由 patreon 提供资助的全职工作比较特殊。你是怎样平衡你的工作与生活,避免倦怠?

虽然我是在家工作的独立开发者,但我每天还是努力去遵循一个固定的时间表。

我可爱的孩子们在这方面帮了我很多,我需要在非工作时间去陪伴家人。

另外很重要的是,在我感觉需要的时候,我就会花几周时间去度假。如果我在公司工作的话,这不太可能实现。

真棒!Vue3 发布之后你会休息一下吗?或者说,你们已经有了下一个版本的 Vite 计划吗?

我这边积压了很多工作。

对于 Vite 来说,目前的目标就是让它更稳定 —— 这是个新系统,大家一直想让它顺利运行在它发布之初未曾设想的一些场景里。

所以给它点时间,看看会怎样进化吧。

关于 Vue 3.1 我也有了一些想法,但我需要休息一会,给自己充充电很重要!

你在大学的时候主修艺术史专业,后来作为创意技术工程师加入 Google Creative Lab。你在开发 Vue 的时候,有因为数学、算法、数据结构方面的欠缺而遇到问题吗?

说实话,真的不多 —— 个人认为 Vue 或者其他前端框架,大部分时候都不是数学/算法密集的领域(比如和数据库对比)。

而且我一直不认为我在算法和数据结构上面很强,在那些方面做的好肯定会有帮助,但是对于开发一个流行框架来说,做好如下几个方面更有帮助:

  • 懂你的用户需要什么
  • 设计合理的 APIs
  • 建立开源社区
  • 长期维护的承诺

我不认为做一个“软件作者”和“写出无聊但是易懂的代码”有什么冲突。说实话后者是需要一定经验的(只要不是非常低效率的那种)!

不要因为没受过严格的 CS 训练,就觉得你写的软件不合格,不过我也不认为你应该忽视它们。

我个人是以务实的态度去写代码的,先用很蠢的方式实现,这也帮助我明白需要去学什么,才能做的更好。

棒棒哒。像 Nuxt.js 和 JAMstack 这些技术,都试着让开发者专注于应用的前端部分,用最小化/JS/BaaS 后端,你怎么看待这些 no-backend 或者说 fullstack 的方法?

我认为这更像是我认为这更像是产品驱动技术的应用。

开发人员喜欢这样的技术栈,是因为正好适合他们正在构建的产品类型:

相对简单的后端逻辑,更多地关注前端交互。

这并不是银弹,但非常适合某类特定的应用。

Vue 经历了很多次重写,如果你能穿越回过去,给开发者一些宝贵的意见的话,会是什么?

要注意如何更好的分离和解耦独立模块

在过去的几年里,显而易见的是 JavaScript 和 TypeScript 并行发展。

你觉得未来会是怎样的,是 JavaScript 中加入类型系统,还是 TypeScript 取代 JavaScript,或是其他的?

我认为给 JS 本身添加类型希望渺茫 —— 我个人觉得不太可能,由委员会来设计一个类型系统(从 TC39 的运作方式来看)是……相当不切实际的。

TypeScript 不会替代 JS 因为它的设计初衷就是JS 的超集

从个人的角度来讲,在可预见的未来中,JS 和 TS(带有类型的超集)并行发展是最实际的前进方式。

Vue 的用户基础已经达到 100 万以上的开发者,你认为评估用户使用情况的最好方式是什么?Stack Overflow 上的问题,Github stars 数量或者其他的公共访问指标?

但也有很多公司是在独立网络里办公,他们“只是使用技术”,从来不问任何问题。

我们如何在统计技术流行趋势的时候算上他们呢?

对于开源软件来说,这本质上是很难的。

用户没有义务去报告使用情况,作为作者,很难有可靠的方法去跟踪使用情况。特别是在应用程序不是面向公众的情况下。

所以我认为 Vue Devtools 拓展的用户数,是目前来说最靠谱的统计使用人数的方式,因为他考虑了所有的用户。

在 Vue3 中有很多 tree-shaking 的工作。为什么你认为 tree-shaking 花了这么长时间在普及到现代框架中?主要的困难在哪里?

tree-shaking 依赖于用特定的结构去设计源码 —— 意味着最好你的代码(和 API 设计)从第一天开始就以支持 tree-shaking 的方式书写。

这其实非常难做到,tree-shaking 友好意味着你需要做一些 API 的破坏性变动,或者大重构。(也带来大风险)

Vue3 的 Function-based Component API 提案受到了来自社区的巨大阻力。

主要的阻力其实来源于用户担心我们会弃用 Vue 2.x 的 API,其实不需要担心这个。

作为作者和开发者,我们在日常工作中通常都会和一些热情的早期用户沟通。

比起普通用户来说,他们自然是对新想法更兴奋的,这会让我们误判向后兼容的重要性,用户不喜欢正在用的东西被拿走。

重点在于,你要明白你的用户想要什么 —— 这其实不是很容易,你很难去得到这些信息,但无论如何,你都要愿意倾听这些。

Vue 的用户案例涵盖了小型企业到中型机构和数十亿美元的上市公司。

Louis Vuitton 和 NASA 都在用 Vue。

有没有什么用 Vue 编写复杂的现实世界的前端的示例推荐给用户?

问题在于大部分“复杂、现实世界”的前端项目都不是开源的。

我推荐去看 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

相关文章
|
24天前
|
JavaScript 前端开发 开发者
Vue.js 框架大揭秘:响应式系统、组件化与路由管理,震撼你的前端世界!
【8月更文挑战第27天】Vue.js是一款备受欢迎的前端JavaScript框架,以简洁、灵活和高效著称。本文将从三个方面深入探讨Vue.js:响应式系统、组件化及路由管理。响应式系统为Vue.js的核心特性,能自动追踪数据变动并更新视图。例如,通过简单示例代码展示其响应式特性:`{{ message }}`,当`message`值改变,页面随之自动更新。此外,Vue.js支持组件化设计,允许将复杂界面拆分为独立且可复用的组件,提高代码可维护性和扩展性。如创建一个包含标题与内容的简单组件,并在其他页面中重复利用。
47 3
|
21天前
|
JavaScript 前端开发 开发者
哇塞!Vue.js 与 Web Components 携手,掀起前端组件复用风暴,震撼你的开发世界!
【8月更文挑战第30天】这段内容介绍了Vue.js和Web Components在前端开发中的优势及二者结合的可能性。Vue.js提供高效简洁的组件化开发,单个组件包含模板、脚本和样式,方便构建复杂用户界面。Web Components作为新兴技术标准,利用自定义元素、Shadow DOM等技术创建封装性强的自定义HTML元素,实现跨框架复用。结合二者,不仅增强了Web Components的逻辑和交互功能,还实现了Vue.js组件在不同框架中的复用,提高了开发效率和可维护性。未来前端开发中,这种结合将大有可为。
65 0
|
6天前
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
1天前
|
机器学习/深度学习 数据采集 JavaScript
ADR智能监测系统源码,系统采用Java开发,基于SpringBoot框架,前端使用Vue,可自动预警药品不良反应
ADR药品不良反应监测系统是一款智能化工具,用于监测和分析药品不良反应。该系统通过收集和分析病历、处方及实验室数据,快速识别潜在不良反应,提升用药安全性。系统采用Java开发,基于SpringBoot框架,前端使用Vue,具备数据采集、清洗、分析等功能模块,并能生成监测报告辅助医务人员决策。通过集成多种数据源并运用机器学习算法,系统可自动预警药品不良反应,有效减少药害事故,保障公众健康。
ADR智能监测系统源码,系统采用Java开发,基于SpringBoot框架,前端使用Vue,可自动预警药品不良反应
|
11天前
|
JavaScript 前端开发
【前端web入门第一天】03 综合案例 个人简介与vue简介
该网页采用“从上到下,先整体再局部”的制作思路,逐步分析并编写代码实现个人简介页面。内容涵盖尤雨溪的背景、学习经历及主要成就,同时介绍其开发的Vue.js框架特点。代码结构清晰,注重细节处理,如使用快捷键提高效率,预留超链接位置等,确保最终效果符合预期。
|
8天前
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
29 3
|
6天前
|
JavaScript 前端开发 API
如何在前端开发中有效管理状态:React vs. Vue
在现代前端开发中,状态管理是一个关键因素,它直接影响到应用的性能和可维护性。React 和 Vue 是当前最流行的前端框架,它们在状态管理方面各有优势和劣势。本文将深入探讨 React 和 Vue 在状态管理中的不同实现,分析它们的优缺点,并提供实际应用中的最佳实践,以帮助开发者选择最适合他们项目的解决方案。
|
22天前
|
JavaScript 前端开发 API
揭秘现代前端开发秘籍:Vue.js与ES6如何联手打造惊艳应用?
【8月更文挑战第30天】本文介绍如何从零开始使用Vue.js与ES6创建现代前端应用。首先,通过简要介绍Vue.js和ES6的新特性,使读者了解这两者为何能有效提升开发效率。接着,指导读者使用Vue CLI初始化项目,并展示如何运用ES6语法编写Vue组件。最后,通过运行项目验证组件功能,为后续开发打下基础。适用于希望快速入门Vue.js与ES6的前端开发者。
40 3
|
29天前
|
设计模式 JavaScript 前端开发
Vue.js 组件设计模式:在前端热潮中找到归属感,打造可复用组件库,开启高效开发之旅!
【8月更文挑战第22天】Vue.js 以其高效构建单页应用著称,更可通过精良的组件设计打造可复用组件库。组件应职责单一、边界清晰,如一个显示文本并触发事件的按钮组件,通过 props 传递标签文本,利用插槽增强灵活性,允许父组件注入动态内容。结合 CSS 预处理器管理和封装独立模块,配以详尽文档,有效提升开发效率及代码可维护性。合理设计模式下,组件库既灵活又强大,持续实践可优化项目工作流。
40 1
|
20天前
|
前端开发 Java Spring
Spring与Angular/React/Vue:当后端大佬遇上前端三杰,会擦出怎样的火花?一场技术的盛宴,你准备好了吗?
【8月更文挑战第31天】Spring框架与Angular、React、Vue等前端框架的集成是现代Web应用开发的核心。通过RESTful API、WebSocket及GraphQL等方式,Spring能与前端框架高效互动,提供快速且功能丰富的应用。RESTful API简单有效,适用于基本数据交互;WebSocket支持实时通信,适合聊天应用和数据监控;GraphQL则提供更精确的数据查询能力。开发者可根据需求选择合适的集成方式,提升用户体验和应用功能。
52 0