作者:CSDN 公号 / Evrone
简介
尤雨溪是一名优秀的软件开发人员,同时是开源JavaScript框架Vue.js的作者。近日,Evrone网站在一次访谈中与他讨论了Vue 3的发布,并分享了他对无后端和全栈开发方式以及Vue.js用例的看法,以及如何平衡工作与生活的方法。
访谈
Evrone:你好,尤先生,很高兴见到你!我想提问的第一个问题是:你全职从事的项目由Patreon提供资助,这一点非常独特。你如何平衡工作与生活,避免过度疲劳呢?
尤雨溪:虽然我是自雇者,而且在家工作,但每天我都会遵循固定的时间表。其实养育孩子在这方面有很大的帮助,因为每当我不工作的时候,就会(必须)和家人在一起。还有一个很重要的方面是,每当我感觉有需要的时候,就会休息很长一段时间(数周),假如我是一名公司的全职员工,则不大可能这样休假。
Evrone:真了不起!Vue 3版本即将发布。在发布之后你打算休息一段时间,还是已经有了开发下一个版本的Vite构建系统的新计划?
尤雨溪:我有很多尚待完成的工作。对于Vite来说,当前的目标实际上是让它稳定,这是一个新系统,人们正在尝试各种使用方式,有些甚至不在我最初的设想中,因此我们打算等待一段时间,看看下一步的发展。关于Vue 3.1我也已经有了一些想法。但是我一定要休息一段时间,充电很重要!
Evrone:你曾是Google创新实验室的一名创意技术人员,而且你的专业背景是艺术史。在开发Vue的过程中,你是否感觉自己欠缺数学、算法和数据结构方面的教育?是不是我们都需要学习计算机科学理论,才能成为真正的程序员?还是说我们需要学习如何成为“软件编写者”,而且喜欢无聊却易于理解的代码?
尤雨溪:老实说,我并没有太多感觉,我个人认为一般来说Vue或前端框架不是一个特别需要数学/算法的领域(例如,与数据库相比)。我不觉得自己在算法或数据结构方面很强。这方面的学习肯定会有所帮助,但是对于建立一个流行的框架,了解用户、设计合理的API、建立社区以及长期的维护承诺更为重要。
我认为成为“软件编写者”与编写“乏味但易于理解的代码”并不矛盾。实际上,编写无聊但易于理解的代码需要一定的经验(前提是这些代码并非极度低效)!我认为即便你没有经过严格的计算机科学培训,也不必觉得自己没有资格编写软件,但你也不应该忽略这些知识欠缺。我个人采取了务实的方法,我曾用最蠢笨的方法做了很多事情,并从中了解我需要学习哪些知识才能提高自己。
Evrone:好厉害。自从有了Nuxt.js和JAMstack之类的许多技术之后,开发人员都想完全专注于应用程序的前端部分,并使用最低限度的后端,比如JS、BaaS等。你如何看待这些“无后端”或“全栈”的方法?
尤雨溪:我认为这更像是正在制造的产品驱动着正在使用的技术。开发人员之所以选择这种技术栈,是因为适合他们正在构建的产品类型:相对简单的后端逻辑,他们需要更多地关注前端交互。这种方式显然不是灵丹妙药,但非常适合某些类别的应用。
Evrone:Vue被重写了很多次。如果时光倒流,你可以给年轻人一个技术建议,那么将是什么?
尤雨溪:如何更好地分离和解耦内部模块。
Evrone:在过去的几年中,我们看到了JavaScript和TypeScript的并行发展。你觉得近期会出现怎样的发展:我们最终会将类型添加到核心的JavaScript中,还是说TypeScript取代JavaScript,或者会出现其他情况?
尤雨溪:我认为将类型添加到JS本身是一个漫长的过程,我个人认为不会出现这种情况,因为让委员会设计一个类型系统是……(根据TC39的经历来判断)不切实际的。TypeScript不会取代JS,因为它是JS的超集。我个人认为,让JS和TS(带有类型的超集)并行发展是最实际的方法,并且在可预见的将来也是如此。
Evrone:Vue的用户群已超过一百万。你认为衡量技术采用率的最佳方法是什么?Stack Overflow上的提问次数、GitHub上的星数和其他公共访问指标都很棒,但是有很多公司用户在隔离的网络上工作,他们并没有提出很多问题,只是“使用技术”。我们如何统计这部分采用率呢?
尤雨溪:这对于开源软件而言是一个内在的难题,因为用户没有义务报告使用情况,而作为作者,我们确实没有可靠的方法来统计采用率,尤其是很多应用都没有公开。因此,我认为开发者工具扩展的用户数是最可靠的指标,因为它考虑了所有用户。
Evrone:即将到来的Vue.js3在摇树算法(Tree shaking)方面付出了大量努力。作为一款现代框架,你觉得为什么加入摇树算法花费了这么长时间?有什么重大难题吗?
尤雨溪:摇树的原理以一种特别的方式依赖于源代码的结构,这意味着最好从编码和设计API的一开始就考虑摇树。将现有的大型代码库变成摇树算法可以利用的形式非常困难,因为需要大量修改API或进行重大重构(风险巨大)。
Evrone:有关Vue 3中“基于函数的组件API”提案遭到了社区成员的强烈反对。你有什么想法与其他开发人员分享吗?
尤雨溪:反对意见主要是因为担心我们会弃用Vue当前(2.x)的API,而我们认为这是一个错误的想法。作为作者和维护者,我们常常在日常工作中与热心的早期采用者互动,对于新的想法,他们自然比新用户更感兴趣,这导致我们误解了向后兼容性的重要性。用户不喜欢弃用现有的功能。
重点在于,你需要了解用户的需求,这不是特别容易,有时你很难获取这样的信息,但无论怎样你需要认真听取大家的意见。
Evrone:Vue的用户范围非常广泛,从小型企业到中型代理机构,再到数十亿美元的上市公司,就连Louis Vuitton和NASA都在使用Vue。你能否推荐一个用Vue编写复杂前端的真实例子?
尤雨溪:问题在于,大多数复杂前端的项目都不是开源的。我建议你看看Vue开发者工具和Vue命令行工具,尽管二者不是常见的面向消费者的Web应用程序,但都是用Vue编写的比较复杂的界面。
总结
我们与尤雨溪进行了愉快的交谈,并了解了他的生活与编程方式。我们经常使用Vue.js创建可满足客户独特需求的定制解决方案。我们非常高兴有机会向该技术的作者讨教,增强我们的专业知识,同时也希望他们为我们提供更多可用于开发创新产品的工具。
用户不喜欢弃用现有的功能。重点在于,你需要了解用户的需求,这不是特别容易,有时你很难获取这样的信息,但无论怎样你需要认真听取大家的意见。
——尤雨溪,Vue.js的作者
专注分享当下最实用的前端技术。关注前端达人,与达人一起学习进步!
长按关注"前端达人"
请发表评论